我运行脚本/生成模型查询
在模型中编辑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 | |
+------------+----------+------+-----+---------+----------------+
“名称”字段在哪里?
帮助!干杯!
答案 0 :(得分:2)
你想要的是script/generate migration your_migration_name
。
编辑#1
我会更好地解释:
实际上,当您运行script/generate model query
时,会创建一些文件,包括models/query.rb
和db/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
正如雅各布指出的那样,因为你已经运行了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
。
答案 1 :(得分:1)
您的数据更改不会出现在您的模型中,而是会进行迁移。运行脚本/生成模型时,除models
中的query.rb文件外,您还可以在db/migrations
中获取XXX_add_queries.rb文件。这是您需要编辑以添加其他字段的文件。
但是,如果您已经运行了rake db:migrate,那么您需要添加新的迁移以添加新字段(script/generate migration add_name_to_queries
),编辑新的迁移文件,然后运行db:migrate试。