Win*_*int 9 ruby-on-rails database-migration rails-migrations
我需要像这样迁移一个旧的mysql表:
Products
name (string, primary_key)
Run Code Online (Sandbox Code Playgroud)
到这个架构:
Products
id (integer, primary_key, auto_generated)
name (unique)
Run Code Online (Sandbox Code Playgroud)
我需要在新表中填充Products.id值.如何编写rails迁移文件?我正在使用Rails 3.2.7
我现在有2个问题:1.我找不到在ActiveRecord :: Migration 2中删除主键的方法.我不知道如何为新添加的主键生成值.
Jor*_*lan 16
您可以在迁移中执行任意SQL:
execute "ALTER TABLE `products` DROP PRIMARY KEY"
Run Code Online (Sandbox Code Playgroud)
然后添加新列:
add_column :products, :id, :primary_key
Run Code Online (Sandbox Code Playgroud)
看到:
http://thinkwhere.wordpress.com/2009/05/09/adding-a-primary-key-id-to-table-in-rails/
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
jlf*_*aux 11
如果您使用的是Postgresql,则语法略有不同.
ALTER TABLE <table_name> DROP CONSTRAINT <table_name>_pkey;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13507 次 |
| 最近记录: |