Active Record Migrations(迁移)
迁移作为文件存储在目录中,每个文件一个 迁移类。文件名的形式是 ,即 UTC 时间戳 标识迁移,后跟下划线,后跟名称 的迁移
bin/rails generate migration AddPartNumberToProducts
这将创建一个适当命名的空迁移:
class AddPartNumberToProducts < ActiveRecord::Migration[7.0]
def change
end
end
这是一些 ActiveRecord 迁移文件中可用的方法的列表以及它们的作用:
-
add_column(table_name, column_name, type, options): 向指定的表中添加一个新的列,可以指定列的数据类型和其他选项。 -
add_foreign_key(from_table, to_table, options): 向表中添加一个新的外键约束,将其中一个表的列与另一个表的列相关联。 -
add_index(table_name, column_name, options): 向指定的表和列添加一个新的索引,可以指定其他选项。 -
add_reference(table_name, ref_name, **options): 向指定的表中添加一个新的引用列和一个新的外键约束,用于引用另一个表中的行。 -
add_timestamps(table_name, options): 向指定的表中添加created_at和updated_at两个时间戳列。 -
change_column_comment(table_name, column_name, comment, options): 更改指定列的注释,可以指定其他选项。 -
change_column_default(table_name, column_name, default_or_changes, options): 更改指定列的默认值,可以指定其他选项。 -
change_column_null(table_name, column_name, null_or_not, options): 更改指定列是否允许为 NULL,可以指定其他选项。 -
change_table_comment(table_name, comment, options): 更改指定表的注释,可以指定其他选项。 -
create_join_table(table_1, table_2, options): 创建一个用于连接两个表的新表,表名根据命名规则自动生成。 -
create_table(table_name, options): 创建一个新的数据库表,可以指定表名和其他选项。 -
disable_extension(extension_name): 禁用指定的 PostgreSQL 扩展。 -
drop_join_table(table_1, table_2, options): 删除连接两个表的中间表。 -
drop_table(table_name, options): 删除指定的数据库表,可以指定其他选项,例如使用块进行更复杂的操作。 -
enable_extension(extension_name): 启用指定的 PostgreSQL 扩展。 -
remove_column(table_name, column_name, type, options): 从指定的表中删除一个列。 -
remove_foreign_key(table_name, options): 从指定的表中删除一个外键约束。 -
remove_index(table_name, column_name, options): 从指定的表和列中删除一个索引。 -
remove_reference(table_name, ref_name, options): 从指定的表中删除一个引用列和外键约束。 -
remove_timestamps(table_name, options): 从指定的表中删除created_at和updated_at两个时间戳列。 -
rename_column(table_name, old_name, new_name): 重命名指定表的列。 -
rename_index(table_name, old_name, new_name): 重命名指定表的索引。 -
rename_table(old_name, new_name): 重命名指定的数据库表。
运行迁移
$ bin/rails db:migrate
一个常见的任务是回滚上次迁移。例如,如果制作了 错误并希望纠正它。而不是追踪版本 与可以运行的上一次迁移关联的编号:
bin/rails db:rollback
这将通过还原方法或运行方法来回滚最新的迁移。如果需要撤消 多个迁移,您可以提供一个参数:change``down``STEP
$ bin/rails db:rollback STEP=3
将还原最后 3 次迁移。

浙公网安备 33010602011771号