recreate_database.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:django-gitlab-boilerplate 作者: motius 项目源码 文件源码
def handle(self, *args, **options):
        try:
            connection = connections[options['database']]
            cursor = connection.cursor()
            database_settings = settings.DATABASES[options['database']]
        except ConnectionDoesNotExist:
            raise CommandError('Database "%s" does not exist in settings' % options['database'])

        if connection.vendor == 'sqlite':
            print("Deleting database %s" % database_settings['NAME'])
            os.remove(database_settings['NAME'])
        elif connection.vendor == 'mysql':
            print("Dropping database %s" % database_settings['NAME'])
            cursor.execute("DROP DATABASE `%s`;" % database_settings['NAME'])

            print("Creating database %s" % database_settings['NAME'])
            cursor.execute("CREATE DATABASE `%s` CHARACTER SET utf8;" % database_settings['NAME'])
            # Should fix some "MySQL has gone away issues"
            cursor.execute("SET GLOBAL max_allowed_packet=32*1024*1024;")
        elif connection.vendor == 'postgresql':
            print("Dropping and recreating schema public")
            cursor.execute("DROP schema public CASCADE; CREATE schema public")
        else:
            raise CommandError('Database vendor not supported')
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号