转储数据库&使用django管理命令迁移到新数据库

时间:2016-03-31 10:31:36

标签: mysql django django-commands

class Command(BaseCommand):
  args = 'Arguments is not needed'
  help = 'Django admin custom command poc.'

  def handle(self, *args, **options):
        db_alias = options.get('olddb') 
        db_entry = settings.DATABASES.get(db_alias)
        output = open(output_filename,'w')

        cmd = ["mysqldump",
               "-u", db_entry.get('USER'),
               "-p%s" % db_entry.get('PASSWORD'),
               "-h", db_entry.get('HOST'),
               db_entry.get('NAME')]
        subprocess.call(cmd, stdout=output)

这里我正在转储我的数据库(olddb)。转换的语法是否正确? 我正在运行一个命令" python manage.py sqldump"。 我当前的数据库中有一个模式。如何将数据迁移到新数据库?我没有 想法新数据库中存在什么模式。迁移数据时如果出现错误则回滚 必须在新数据库中完成。

或其他任何好的文章,以获得更多的信息?

1 个答案:

答案 0 :(得分:0)

如果搜索mysqldump,你会发现很多信息。例如:

backup: # mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

restore:# mysql -u root -p[root_password] [database_name] < dumpfilename.sql

来自:http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/

如果查看dumpfilename.sql,您会看到它是一堆用于创建表的sql命令,然后插入命令将数据插入到它们中