Rails 迁移在 Postgres 中创建表失败



如标题中所述,我的Rails应用程序中有一个迁移,可以创建一个表。我们有一个Postgres数据库。当我在开发中运行迁移时,它失败了:

ActiveRecord::StatementInvalid: PG::Error: ERROR:  current transaction is aborted, commands ignored until end of transaction block
: CREATE TABLE "feedback_questions" ("id" serial primary key, "survey_id" integer, "question_text" text, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 

迁移过程很长,但首先要做的是创建表。它看起来像这样:

def up
  create_table :feedback_questions do |t|
    t.integer :survey_id
    t.text :question_text
    t.timestamps
  end
  # ...
end

在我看来,这不是迁移的问题,而是数据库的问题(错误来自PG)。错误消息类似于这个问题,但它并没有说明出了什么问题 - 只是有一个错误。(此外,该表尚不存在;我已经检查过了。

如何获取更多数据来调试此问题?

错误消息是一条红鲱鱼。问题不在于表创建;问题在于迁移本身的格式。我在迁移中定义了几个模型,这些模型使用 #up 方法中创建的表。当 rake 尝试开始迁移时,它会查找这些行的表,并在找不到它们时翻转。create语句恰好是错误后运行的第一个命令。

相关内容

  • 没有找到相关文章

最新更新