为什么我的Rails 4 / Postgres中的所有表都以1的“维度”创建?
我试图用Postgres在Rails 4中进行基本的模型生成和迁移,我遇到了很多问题。 我安装了pg
gem,版本为0.17.1
。
在开始时,我甚至无法无错误地运行迁移,因为schema_migrations
表是使用维度为1
的version
列创建的。 一旦我手动将其更改为零,它工作正常。
现在,如果我查看由于使用Rails模型生成器而导致的所有迁移,我会看到每个列(每个表中的id
列除外)都是使用dimension
1
创建的。
我需要更改一些默认设置吗? 这是不正确的,我搞乱别的东西? 这是我的第一个Rails 4项目,所以我只想弄清楚为什么它希望所有这些列都默认为一个数组。
这是我的一个迁移文件:
class CreateCatalogs < ActiveRecord::Migration def change create_table :catalogs do |t| t.string :name t.text :description t.string :schema_name t.string :catalog_type t.boolean :billable t.timestamps end end end
这是来自schema.rb
:
create_table "catalogs", force: true do |t| t.string "name", array: true t.text "description", array: true t.string "schema_name", array: true t.string "catalog_type", array: true t.boolean "billable", array: true t.datetime "created_at", array: true t.datetime "updated_at", array: true end
哎呀!
幸运的是, Ruby on Rails v4.0.3
今天发布了 。 我做了以下事情:
- 升级Rails
- 删除了
db/migrate/schema.rb
- 删除所有3个数据库(开发,测试,生产)
- 跑
rake db:setup
- 跑
rake db:migrate
- 查看新的
db/migrate/schema.rb
以确保它没问题 - 跑了
rake db:test:prepare
果然,这个新版本解决了这个问题。 我无法在任何地方找到问题的记录! 几个星期以来一直是个问题。 无论如何,修好了!
可能是您的迁移将每列指定为数组