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_atupdated_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_atupdated_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 次迁移。

posted @ 2023-04-19 17:47  卓亦苇  阅读(36)  评论(0)    收藏  举报