Kah*_*hsn 1 ruby migration ruby-on-rails
我有一个名为 的迁移文件[timestamp]_create_posts.rb。我发现我用错误的数据类型创建了列。我需要t.text :content代替t.string :content.
我包含上述文件中的代码:
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :title
t.string :content
t.timestamps null: false
end
end
end
Run Code Online (Sandbox Code Playgroud)
我有点知道我不应该直接更改文件,而是回滚迁移并更改架构并再次进行迁移。但我不确定这是否是正确的方法。如果有人能指导我完成这个任务,那就太好了。我对 Rails 不太熟悉。
你不应该回滚任何东西。您应该创建一个新的迁移,这将更改包含以下内容的列:
class UpdatePostsChangeContentColumn < ActiveRecord::Migration
def change
change_column :posts, :content, :text, limit: 60000 # or whatever
end
end
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,提供此迁移的合理回滚:
class UpdatePostsChangeContentColumn < ActiveRecord::Migration
def up
change_column :posts, :content, :text, limit: 60000 # or whatever
end
# back to previous version
def down
change_column :posts, :content, :string
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3283 次 |
| 最近记录: |