2009-11-26 37 views
0

我有一个Rails迁移:MySQL的运行后失踪场轨数据库迁移

>> cat db/migrate/20091126031039_create_cards.rb 
class CreateCards < ActiveRecord::Migration 
    def self.up 
    create_table :cards do |t| 
     t.string :number_hash 
     t.int :number 
     t.string :name 
     t.string :type 
     t.string :expiration 
     t.int :sec_code 

     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :cards 
    end 
end 

通知 “t.int:SEC_CODE” 行。它似乎成功地执行:

>> rake db:migrate(in /Users/aaronj1335/Sites/clarkbox) 
== CreateCards: migrating ==================================================== 
-- create_table(:cards) 
    -> 0.4315s 
== CreateCards: migrated (0.4317s) =========================================== 

但没有创建 “SEC_CODE” 列:

mysql> describe cards; 
+-------------+--------------+------+-----+---------+----------------+ 
| Field  | Type   | Null | Key | Default | Extra   | 
+-------------+--------------+------+-----+---------+----------------+ 
| id   | int(11)  | NO | PRI | NULL | auto_increment | 
| number_hash | varchar(255) | YES |  | NULL |    | 
| name  | varchar(255) | YES |  | NULL |    | 
| type  | varchar(255) | YES |  | NULL |    | 
| expiration | varchar(255) | YES |  | NULL |    | 
| created_at | datetime  | YES |  | NULL |    | 
| updated_at | datetime  | YES |  | NULL |    | 
+-------------+--------------+------+-----+---------+----------------+ 
7 rows in set (0.00 sec) 

为什么不SEC_CODE列创建?好像我应该得到一个错误...

回答

2

t.int应该可能是t.integer。给那一枪。

如有疑问,dizzy总是有一些很好的参考。

+0

坚果,这是一个愚蠢的错误,谢谢。 – aaronstacy 2009-11-26 03:35:06

0

嗯,我还没有看到被正确创建的“数字”域中,因此它必须是类型(t.int:号丢失)