Rails Postgres如何在创建后更改固定数据列?
Rails Postgres how to change fix a data column after created?
我在 postgres 的 table 上创建了一个专栏。但是在创建之后我发现我在强调上犯了一个错误,我想而不是破坏列来修复它。有办法吗?
我正在使用 Rails 和控制台创建列。谢谢
您可以编写迁移并重命名您的列:
class RenameColumn < ActiveRecord::Migration
def change
rename_column :table_name, :old_column, :new_column
end
end
然后在终端执行rake db:migrate
。
如果您想从控制台执行此操作。
ActiveRecord::Migration.remove_column :table_name, :old_column_name
ActiveRecord::Migration.add_column :table_name, :new_column_name, :type
或使用rename_column
ActiveRecord::Migration.rename_column :table, :old_column, :new_column
但创建迁移总是更好。你可以查看llya关于如何编写迁移的答案。
试试这个
在您当前的迁移更改中
def change
end
到
def self.up
add_column :table_name, column_name, type
end
然后在此之后添加
def self.down
remove_column :table_name, column_name
end
第一个运行
rake db:migrate:down VERSION= version_number
现在更正 self.up 和 运行
中的列名
run rake db:migrate:up VERSION= version_number
我在 postgres 的 table 上创建了一个专栏。但是在创建之后我发现我在强调上犯了一个错误,我想而不是破坏列来修复它。有办法吗?
我正在使用 Rails 和控制台创建列。谢谢
您可以编写迁移并重命名您的列:
class RenameColumn < ActiveRecord::Migration
def change
rename_column :table_name, :old_column, :new_column
end
end
然后在终端执行rake db:migrate
。
如果您想从控制台执行此操作。
ActiveRecord::Migration.remove_column :table_name, :old_column_name
ActiveRecord::Migration.add_column :table_name, :new_column_name, :type
或使用rename_column
ActiveRecord::Migration.rename_column :table, :old_column, :new_column
但创建迁移总是更好。你可以查看llya关于如何编写迁移的答案。
试试这个
在您当前的迁移更改中
def change
end
到
def self.up
add_column :table_name, column_name, type
end
然后在此之后添加
def self.down
remove_column :table_name, column_name
end
第一个运行
rake db:migrate:down VERSION= version_number
现在更正 self.up 和 运行
中的列名run rake db:migrate:up VERSION= version_number