【问题标题】:Why are all of my tables in Rails 4/Postgres being created with "dimension" of 1?为什么我在 Rails 4/Postgres 中的所有表都是以“维度”为 1 创建的?
【发布时间】:2014-03-19 02:26:37
【问题描述】:

我在尝试使用 Postgres 在 Rails 4 中进行基本模型生成和迁移时遇到了很多问题。我安装了pg gem,版本为0.17.1

一开始,我什至无法在没有错误的情况下运行迁移,因为schema_migrations 表是使用维度为1version 列创建的。一旦我手动将其更改为零,它就可以正常工作。

现在,如果我查看使用 Rails 模型生成器产生的所有迁移,我会发现 每一列,除了 @每个表中的 987654326@ 列是使用 dimension1 创建的。

我需要更改一些默认设置吗?这在某种程度上是正确的,我正在搞砸别的东西吗?这是我的第一个 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

什么鬼!

【问题讨论】:

  • 您能否举个例子说明您通常如何运行rails generate 命令或向我展示您的一个模型的迁移文件(例如db/migrate/&lt;date&gt;_create_catalog_users)?
  • Rails 的新版本今天刚刚发布,版本 4.0.3。我刚刚升级,生成了一个虚拟模型,瞧,它是固定的。在哪里可以找到发行说明以及次要版本之间的更改?我永远找不到这些信息。

标签: ruby-on-rails postgresql ruby-on-rails-4 rails-postgresql


【解决方案1】:

幸运的是,Ruby on Rails v4.0.3今天发布了。我做了以下事情:

  1. 升级 Rails
  2. 已删除db/migrate/schema.rb
  3. 删除所有 3 个数据库(开发、测试、生产)
  4. rake db:setup
  5. rake db:migrate
  6. 查看了新的db/migrate/schema.rb 以确保它没问题
  7. rake db:test:prepare

果然,这个问题在这个新版本中得到了解决。我在任何地方都找不到问题的记录!几个星期以来一直是个问题。总之,修好了!

【讨论】:

    【解决方案2】:

    可能是您的迁移将每一列指定为数组

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 2011-09-23
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      • 2021-09-09
      • 2017-03-12
      • 1970-01-01
      相关资源
      最近更新 更多