Rails: Postgis doesn't create normal columns
我正在尝试让Postgis在我的Rails应用程序中工作。 我使用迁移创建一个表,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 | class CreatePosts < ActiveRecord::Migration def CHANGE create_table :posts do |t| t.point :location, geographic: TRUE t.belongs_to :owner, NULL: FALSE t.string :content t.timestamps t.index :owner_id t.index :location, spatial: TRUE END END END |
在rake db:migrate之后,我检查了schema.rb文件,它显示:
1 2 3 4 5 6 | create_table"posts", force: TRUE do |t| t.spatial "location", LIMIT: {:srid=>4326, :TYPE=>"point", :geographic=>TRUE} t.datetime"created_at" t.datetime"updated_at" END add_index"posts", ["location"], :name =>"index_posts_on_location", :spatial => TRUE |
这意味着不会创建owner_id和content列。 我通过使用psql检查数据库进一步证实了这一点。 我在这做错了什么?
仅供参考,我正在使用Ruby v2.1.5p273,Rails v4.1.8,Postgresql 9.3和Postgresql repo的Postgis2。 我在CentOS 7上运行它们。
编辑:
看起来像rake db:reset不能达到我的预期。 如果我做rake db:drop; rake db:create; rake db:migrate,架构是正确的。 任何的想法?
这篇文章帮助了我,我真正应该做的是rake db:migrate:reset。
尝试引用而不是belongs_to。
如果您使用referneces删除t.index:owner_id