【问题标题】:PG::UndefinedTable ERROR ruby on rails herokuPG::UndefinedTable ERROR ruby​​ on rails heroku
【发布时间】:2017-01-07 07:07:41
【问题描述】:

我一直在为生产准备我的应用程序,但我正在努力整理我的数据库。它给了我这个错误:

PG::UndefinedTable: ERROR: relation "events" does not exist
: ALTER TABLE "events" ADD "code" character varying

这是我的 database.yml 文件:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: postgresql
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

production:
  <<: *default
  database: db/production.postgresql

这是我的事件迁移文件:

class CreateEvents < ActiveRecord::Migration[5.0]
  def change
    create_table :events do |t|
      t.string :name
      t.string :partycode
      t.references :user, foreign_key: true

      t.timestamps
    end
  end
end

编辑: 当我运行rake db:migrate:status 时,我得到以下结果: 最后,这是我的 gemfile:

source 'http://rubygems.org'

    gem 'bootstrap-sass', '3.2.0.2'

    gem 'bcrypt',         '3.1.11'

    gem 'will_paginate'

    gem 'responders'

    gem 'rails', '~> 5.0.0', '>= 5.0.0.1'

    gem 'puma', '~> 3.0'

    gem 'sass-rails', '~> 5.0'

    gem 'uglifier', '>= 1.3.0'

    gem 'coffee-rails', '~> 4.2'

    gem "heroku"

    gem 'coffee-script-source', '1.8.0'

    gem 'jquery-rails'

    gem 'turbolinks', '~> 5'

    gem 'jbuilder', '~> 2.5'


    group :development, :test do
      # Call 'byebug' anywhere in the code to stop execution and get a debugger console
      gem 'sqlite3'
      gem 'byebug', platform: :mri
    end

    group :production do
      gem 'web-console'
      gem 'pg'
    end

    gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
    ruby "2.2.4"

让我知道您是否需要解决我遇到的这个问题。谢谢:D

【问题讨论】:

    标签: ruby-on-rails postgresql heroku


    【解决方案1】:

    看到您的rake db:migrate:status,您会遇到一个问题,即迁移Add code to events 应该在Create events 迁移之后,因为您正在对event 进行更改,但之后会创建相应的表。所以你应该解决这个问题,临时解决你可以做的是:

    rake db:migrate:up VERSION=20161219214142
    

    20161219214142 是你 Create Events 迁移的版本,所以这将为你运行特定的迁移并创建 events 表然后如果你将运行 rake db:migrate 那么它会正常工作。

    【讨论】:

    • 那么我该如何改变这两个的顺序呢?
    • @Aaron 这可能会帮助您stackoverflow.com/questions/10456761/… 更改迁移顺序。同时,您可以尝试临时修复。
    • 工作就像一个魅力,我现在可以看到我的生产应用程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 2017-12-19
    • 2019-11-28
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多