mysqldump 和加载如何影响 rails 架构和迁移?
How does mysqldump and load affect rails schema and migrations?
我有一个带有 rails 应用程序的 mariaDB 数据库。
我打算先正常设置 rails 应用程序,然后使用其用户界面首先创建数据库数据,然后使用 mysqldump 导出这些数据。
mysqldump -u username -p database_name > data-dump.sql
我的问题是,如果我稍后进行迁移,我仍然可以加载 mysql 转储而不会遇到问题吗?
例如,如果我的迁移删除了一个列,我是否应该再次使用 mysqldump 创建一个新的数据库备份?
关于 schema 有什么需要注意的吗?
当您执行 mysqldump 时,默认情况下包含 table 创建语句。如果您传入 --no-create-info 标志,它们只会被排除在外。由于您的迁移只是对 table 的更改,因此您可以放心,当您稍后加载数据时,它将应用所有迁移,直到您的数据库被转储。
此外,当您 运行 迁移时,rails 会跟踪 运行 在 schema_migrations table 中。因此,如果您回滚到之后有更多迁移的时间点,您可以重新 运行 rake db:migrate 并且只有那些新的会 运行,因为这些数据都是部分您的备份。
我有一个带有 rails 应用程序的 mariaDB 数据库。
我打算先正常设置 rails 应用程序,然后使用其用户界面首先创建数据库数据,然后使用 mysqldump 导出这些数据。
mysqldump -u username -p database_name > data-dump.sql
我的问题是,如果我稍后进行迁移,我仍然可以加载 mysql 转储而不会遇到问题吗?
例如,如果我的迁移删除了一个列,我是否应该再次使用 mysqldump 创建一个新的数据库备份?
关于 schema 有什么需要注意的吗?
当您执行 mysqldump 时,默认情况下包含 table 创建语句。如果您传入 --no-create-info 标志,它们只会被排除在外。由于您的迁移只是对 table 的更改,因此您可以放心,当您稍后加载数据时,它将应用所有迁移,直到您的数据库被转储。
此外,当您 运行 迁移时,rails 会跟踪 运行 在 schema_migrations table 中。因此,如果您回滚到之后有更多迁移的时间点,您可以重新 运行 rake db:migrate 并且只有那些新的会 运行,因为这些数据都是部分您的备份。