PG :: UndefinedTable: ОШИБКА: отношение "акции" не существует - PullRequest
0 голосов
/ 31 мая 2018

Я застрял, пытаясь исправить эту ошибку БД в течение большей части недели.Любая помощь приветствуется;ищу какое-либо решение, независимо от того, насколько оно радикально.

Проблема возникла из-за отсутствия файла миграции для таблицы, «запасов» в моей схеме.Я создал таблицу "stocks" в другой ветви функций, и по какой-то причине этот файл миграции не вернулся в основную ветку после слияния.Таким образом, не было никакого файла миграции create_stocks, но было несколько файлов миграции add_column_to_stocks.

Итак, я попытался изменить порядок файлов миграции, но это не сработало, поэтому я очистил файлы миграции и запустил rake db: migrate: reset, так что все нормально на моей производственной стороне.Если я запускаю rake db: migrate на моей производственной стороне, я не получаю никаких ошибок, но когда я пытаюсь отправить это на heroku, я получаю странное сообщение.Кажется, по-прежнему требуется перенести файл миграции, который больше не существует.

Вот полное сообщение:

Called from /app/vendor/bundle/ruby/2.3.0/gems/activesupport- 
4.2.5/lib/active_support/dependencies.rb:240:in `load_dependency'
ActiveRecord::SchemaMigration Load (1.6ms)  SELECT "schema_migrations".* 
FROM "schema_migrations"
Migrating to AddLatestPriceToStocks (20180515064500)
(1.1ms)  BEGIN
== 20180515064500 AddLatestPriceToStocks: migrating 
===========================
-- add_column(:stocks, :latest_price, :decimal)
(1.9ms)  ALTER TABLE "stocks" ADD "latest_price" decimal
(1.1ms)  ROLLBACK
rake aborted!
StandardError: An error has occurred, this and all later migrations 
canceled:

 PG::UndefinedTable: ERROR:  relation "stocks" does not exist
: ALTER TABLE "stocks" ADD "latest_price" decimal

Вот мои файлы миграции;обратите внимание, что файл миграции 20180515064500 больше не существует, поэтому я понятия не имею, почему он все еще пытается перенести это в heroku.

  up     20171231042756  Create articles
  up     20171231044214  Add description to articles
  up     20180116183526  Create users
  up     20180116191414  Add user to articles
  up     20180116195212  Add password digest to users
  up     20180305082108  Create categories
  up     20180305090315  Create article categories
  up     20180521021514  Create user stocks
  up     20180530032220  Create stocks

Вот моя локальная производственная схема:

create_table "article_categories", force: :cascade do |t|
t.integer "article_id"
t.integer "category_id"
end

create_table "articles", force: :cascade do |t|
t.string   "title"
t.text     "description"
t.datetime "created_at"
t.datetime "updated_at"
t.integer  "user_id"
end

create_table "categories", force: :cascade do |t|
t.string   "name"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "stocks", force: :cascade do |t|
t.decimal  "latest_price"
t.string   "company_name"
t.datetime "latest_time"
t.integer  "latest_update"
end

create_table "user_stocks", force: :cascade do |t|
t.integer  "user_id"
t.integer  "stock_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end

add_index "user_stocks", ["stock_id"], name: "index_user_stocks_on_stock_id"
add_index "user_stocks", ["user_id"], name: "index_user_stocks_on_user_id"

create_table "users", force: :cascade do |t|
t.string   "username"
t.string   "email"
t.datetime "created_at"
t.datetime "updated_at"
t.string   "password_digest"
end

А вот моя схема Heroku:

create_table "article_categories", force: :cascade do |t|
t.integer "article_id"
t.integer "category_id"
end

create_table "articles", force: :cascade do |t|
t.string   "title"
t.text     "description"
t.datetime "created_at"
t.datetime "updated_at"
t.integer  "user_id"
end

create_table "categories", force: :cascade do |t|
t.string   "name"
t.datetime "created_at"
t.datetime "updated_at"
end

create_table "users", force: :cascade do |t|
t.string   "username"
t.string   "email"
t.datetime "created_at"
t.datetime "updated_at"
t.string   "password_digest"
end

end

Не уверен, что я усугубил проблему.Я ищу любое решение на данный момент, независимо от того, насколько решительным.Любая помощь ценится и, надеюсь, этого достаточно информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...