【问题标题】:Problem with migrating a model in ruby在 ruby​​ 中迁移模型的问题
【发布时间】:2010-04-09 17:12:32
【问题描述】:

我运行脚本/生成模型查询

在模型中编辑 query.rb..

class Query < ActiveRecord::Base #I even tried Migrations instead of Base
  def sef.up
    create table :queries do|t|
      t.string :name
    end
  end

  def self.down
    drop_table :queries
  end
end

,运行 rake db:migrate。

我在 db 中看到的是这样的:

mysql> desc queries;
+------------+----------+------+-----+---------+----------------+
| Field      | Type     | Null | Key | Default | Extra          |
+------------+----------+------+-----+---------+----------------+
| id         | int(11)  | NO   | PRI | NULL    | auto_increment | 
| created_at | datetime | YES  |     | NULL    |                | 
| updated_at | datetime | YES  |     | NULL    |                | 
+------------+----------+------+-----+---------+----------------+

“名称”字段在哪里?

帮助!干杯!

【问题讨论】:

  • 您是否尝试过重新启动 MySQL 服务器以强制更新 information_schema?

标签: ruby-on-rails models migration


【解决方案1】:

你想要的是script/generate migration your_migration_name

编辑#1

我会解释得更好:

实际上,当您运行script/generate model query 时,会创建一些文件,包括models/query.rbdb/migrate/XXX_create_query.rb。要创建 queries 表,您必须编辑第二个文件 (db/migrate/XXX_create_query.rb) 并插入您发布的代码:

class CreateQueries < ActiveRecord::Migration
   def self.up
      create_table :queries do |t|
         t.string :name
      end
   end

   def self.down
     drop_table :queries
   end
end

然后运行rake db:migrate

编辑#2

正如 JacobM 指出的那样,您已经运行 rake db:migrate,现在您只需要创建另一个迁移

script/generate migration add_name_column_to_queries_table

编辑db/migrate/XXX_add_name_column_to_queries_table.rb 文件以插入新的name 列,然后再次运行rake db:migrate

【讨论】:

    【解决方案2】:

    您的数据更改不会出现在您的模型中,它们会出现在您的迁移中。当您运行脚本/生成模型时,除了models 中的 query.rb 文件之外,您还会在db/migrations 中获得一个 XXX_add_queries.rb 文件。这是您需要编辑以添加另一个字段的文件。

    但是,如果您已经运行了 rake db:migrate,那么您需要添加一个新的迁移来添加您的新字段 (script/generate migration add_name_to_queries),编辑新的迁移文件,然后再次运行 db:migrate。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多