mysqldump和load如何影响Rails架构和迁移?

时间:2018-08-27 23:58:32

标签: mysql ruby-on-rails migration schema rails-migrations

我有一个带有Rails应用程序的mariaDB数据库。

我打算先正常设置Rails应用程序,然后使用其用户界面首先创建数据库数据,然后使用mysqldump导出这些数据。

mysqldump -u username -p database_name > data-dump.sql

我的问题是,如果以后再迁移,是否仍可以加载mysql dump而不会遇到问题?

例如,如果我的迁移删除了列,是否应该再次使用mysqldump创建新的数据库备份?

关于架构,我需要注意什么吗?

1 个答案:

答案 0 :(得分:2)

当您执行mysqldump时,默认情况下会包含表create语句。仅当您传递--no-create-info标志时,才会排除它们。由于迁移只是对表的更改,因此可以放心,以后再加载数据时,数据将在转储数据库之前应用所有迁移。

此外,当您运行迁移时,rails会在schema_migrations表中跟踪已运行的迁移。因此,如果您回滚到以后有更多迁移的时间点,则可以重新运行rake db:migrate,并且仅那些新的将运行,因为这些数据都是备份的一部分。