我有一个指定mySQL列大小的迁移:
class CreateEntities < ActiveRecord::Migration
def change
create_table :entities do |t|
...
t.string :telephone, limit: 50
...
end
end
end最初,这个限制是20。
我似乎无法将这个新的限制应用到数据库中。
我试过:
> rake db:reset也是
> rake db:drop
> rake db:setup旧的价值依然存在。
我也删除了schema.rb文件,但是当重新创建它时,它仍然包含旧的值:
ActiveRecord::Schema.define(version: 20140718164541) do
create_table "entities", force: true do |t|
...
t.string "telephone", limit: 20
...
end如果有关系的话,我在用吉特。
发布于 2014-08-01 22:06:18
rake db:reset不会重新运行您的迁移。它清除数据库,加载架构,然后设置任何种子。若要更改已存在的列的限制,应创建更改该列的新迁移:
class ChangeEntitiesTelephoneLimit < ActiveRecord::Migration
def change
change_column :entities, :telephone, :string, limit: 50
end
end如果您真的想重用相同的迁移,请删除并重新创建数据库,然后运行迁移:
rake db:drop
rake db:create
rake db:migratehttps://stackoverflow.com/questions/25089170
复制相似问题