ruby-on-rails - 如何手动创建迁移文件 Rails 4

标签 ruby-on-rails

正如您将看到的,我对 Rails 还很陌生。

我正在尝试遵循 RailsGuides on Active Record Associations 中的第 3.3.2 节它说在定义多对多关系时,除了添加 has_and_belongs_to_many对模型的指令,您“需要显式创建连接表”。

然后给出迁移文件内容的示例:

class CreateAssembliesPartsJoinTable < ActiveRecord::Migration
  def change
    create_table :assemblies_parts, id: false do |t|
      t.integer :assembly_id
      t.integer :part_id
    end
  end
end

我的问题是:我应该给那个文件起什么名字?我看到 rails g ... 生成的文件命令都在 ..db\migrate文件夹并在文件的开头有一种时间戳。我可以用任何名字吗?我害怕测试并弄乱整个事情。我习惯了 MS-SQL 并且能够查看表、添加/修改列等。

附带问题:那里已经有一些文件,来自以前的迁移。 rails 如何知道哪些已经运行了?之后在部署到 Heroku 时运行它们呢?

最佳答案

您可以为迁移指定任何名称。最好是像 create_table_something 这样不言自明的东西。您可以通过执行生成迁移

rails generate migration create_assemblies_parts_joins_table

这将在 db/migrate 文件夹中生成一个如下所示的文件
<timestamp>_create_assemblies_parts_joins_table

Rails 在 scheme_migrations 中跟踪已经运行的迁移 table 。它存储所有已经运行的迁移的时间戳

更新:

您可以在迁移文件中将表名更改为您想要的任何名称。将使用您在以下行中指定的名称创建表
create_table :assemblies_parts, id: false do |t|
assemblies_parts将是表名。

关于ruby-on-rails - 如何手动创建迁移文件 Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23924981/

相关文章:

ruby-on-rails - 出错后保持填写表单字段 (RoR)

ruby-on-rails - 如何在 Rails 中的关联模型上配置 pg_search 多重搜索?

ruby-on-rails - MVC 中 RESTful 多对多逻辑应该放在哪里?

ruby-on-rails - Rails:ActiveSupport::HashWithIndifferentAccess:Class 的未定义方法 `primary_key'

ruby-on-rails - Rails 4 何时不允许使用选项哈希(最后)?

javascript - Rails POST 链接与 Bootstrap 工具提示

mysql gem 与 mysql2 gem 和 'each_hash' 方法

ruby-on-rails - 如何在终端中查看 Heroku 应用程序的当前数据库架构?

ruby-on-rails - 我可以在测试期间禁用一些 BackgroundRb worker 吗?

ruby-on-rails - 使用HTTP::Net例程连接到HTTPS时出错(Ruby on Rails)