2016-05-22 4 views
-1

Я пытаюсь взломать мои миграции на моем сервере heroku. им получать эту ошибку:Ошибки при миграции heroku

rake aborted! 
StandardError: An error has occurred, this and all later migrations canceled: 

PG::UndefinedTable: ERROR: relation "plants" does not exist 
: ALTER TABLE "images" ADD CONSTRAINT "fk_rails_d5e1aedcb5" 
FOREIGN KEY ("plant_id") 
REFERENCES "plants" ("id") 

Некоторые из моих таблиц пройти, но это не один, я не уверен, что даже здесь происходит. Он работает в разработке, но не в производстве.

Вот мой файл схемы:

ActiveRecord::Schema.define(version: 20160521081000) do 

    create_table "appointments", force: :cascade do |t| 
    t.string "task" 
    t.datetime "time" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

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

    create_table "cycles", force: :cascade do |t| 
    t.string "title" 
    t.datetime "completed_at" 
    t.boolean "completed" 
    t.integer "tray_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.datetime "due_date" 
    end 

    add_index "cycles", ["tray_id"], name: "index_cycles_on_tray_id" 

    create_table "datalogs", force: :cascade do |t| 
    t.integer "tray_id" 
    t.float "ambcur" 
    t.float "ambmin" 
    t.float "ambmax" 
    t.float "folcur" 
    t.float "folmin" 
    t.float "folmax" 
    t.float "ph" 
    t.float "heatmat" 
    t.float "h202" 
    t.float "tds" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    add_index "datalogs", ["tray_id"], name: "index_datalogs_on_tray_id" 

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

    create_table "grows", force: :cascade do |t| 
    t.string "title" 
    t.text  "notes" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.integer "category_id" 
    t.integer "user_id" 
    end 

    create_table "images", force: :cascade do |t| 
    t.string "file_id" 
    t.integer "plant_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "tray_id" 
    end 

    add_index "images", ["plant_id"], name: "index_images_on_plant_id" 

    create_table "nutrient_calcs", force: :cascade do |t| 
    t.string "product" 
    t.integer "vegtime" 
    t.integer "flowertime" 
    t.float "rezsize" 
    t.string "rezunits" 
    t.boolean "aerstone" 
    t.string "outputunits" 
    t.integer "nutrient_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    add_index "nutrient_calcs", ["nutrient_id"], name: "index_nutrient_calcs_on_nutrient_id" 

    create_table "nutrients", force: :cascade do |t| 
    t.string "title" 
    t.string "manufacturer" 
    t.float "price" 
    t.string "unit" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    create_table "pages", force: :cascade do |t| 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    create_table "pics", force: :cascade do |t| 
    t.string "title" 
    t.text  "description" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    create_table "plant_cycles", force: :cascade do |t| 
    t.string "title" 
    t.integer "interval" 
    t.integer "frequency" 
    t.integer "plant_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    add_index "plant_cycles", ["plant_id"], name: "index_plant_cycles_on_plant_id" 

    create_table "plantdats", force: :cascade do |t| 
    t.float "ambtemp" 
    t.float "foltempcur" 
    t.float "foltempmin" 
    t.float "foltempmax" 
    t.float "ph" 
    t.float "heatmat" 
    t.integer "tds" 
    t.float "h202" 
    t.integer "plant_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.float "ambtempmin" 
    t.float "ambtembmax" 
    end 

    add_index "plantdats", ["plant_id"], name: "index_plantdats_on_plant_id" 

    create_table "plants", force: :cascade do |t| 
    t.string "title" 
    t.text  "notes" 
    t.integer "category_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.string "species" 
    t.integer "tray_id" 
    t.integer "species_id" 
    t.integer "user_id" 
    end 

    add_index "plants", ["category_id"], name: "index_plants_on_category_id" 
    add_index "plants", ["tray_id"], name: "index_plants_on_tray_id" 
    add_index "plants", ["user_id"], name: "index_plants_on_user_id" 

    create_table "schedules", force: :cascade do |t| 
    t.integer "schedulable_id" 
    t.string "schedulable_type" 
    t.date  "date" 
    t.time  "time" 
    t.string "rule" 
    t.string "interval" 
    t.text  "day" 
    t.text  "day_of_week" 
    t.datetime "until" 
    t.integer "count" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    end 

    create_table "species", force: :cascade do |t| 
    t.string "name" 
    t.text  "description" 
    t.integer "plant_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    add_index "species", ["plant_id"], name: "index_species_on_plant_id" 

    create_table "tasks", force: :cascade do |t| 
    t.integer "plant_id" 
    t.integer "tray_id" 
    t.string "title" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.datetime "due_date" 
    end 

    add_index "tasks", ["plant_id"], name: "index_tasks_on_plant_id" 
    add_index "tasks", ["tray_id"], name: "index_tasks_on_tray_id" 

    create_table "tray_cycles", force: :cascade do |t| 
    t.string "title" 
    t.integer "tray_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

    add_index "tray_cycles", ["tray_id"], name: "index_tray_cycles_on_tray_id" 

    create_table "trays", force: :cascade do |t| 
    t.string "title" 
    t.text  "notes" 
    t.integer "category_id" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.integer "user_id" 
    t.integer "rescap" 
    end 

    add_index "trays", ["category_id"], name: "index_trays_on_category_id" 

    create_table "users", force: :cascade do |t| 
    t.string "email",     default: "", null: false 
    t.string "encrypted_password",  default: "", null: false 
    t.string "reset_password_token" 
    t.datetime "reset_password_sent_at" 
    t.datetime "remember_created_at" 
    t.integer "sign_in_count",   default: 0, null: false 
    t.datetime "current_sign_in_at" 
    t.datetime "last_sign_in_at" 
    t.string "current_sign_in_ip" 
    t.string "last_sign_in_ip" 
    t.datetime "created_at",       null: false 
    t.datetime "updated_at",       null: false 
    t.integer "user_id" 
    t.string "firstname" 
    t.string "lastname" 
    t.string "username" 
    end 

    add_index "users", ["email"], name: "index_users_on_email", unique: true 
    add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true 

end 

Кроме того, мое приложение получает толкнул на Heroku, но когда я иду в 'sign_up', я получаю ошибку из бревен Heroku:

2016-05-22T07:53:31.678059+00:00 app[web.1]: ActionView::Template::Error (undefined method `firstname' for #<User:0x007fa667e33798>): 
2016-05-22T07:53:31.678049+00:00 app[web.1]: 
2016-05-22T07:53:31.678060+00:00 app[web.1]:  25: 
2016-05-22T07:53:31.678061+00:00 app[web.1]:  26:   <div class="field"> 
2016-05-22T07:53:31.678062+00:00 app[web.1]:  27:    <%= f.label 'First Name' %><br /> 
2016-05-22T07:53:31.678063+00:00 app[web.1]:  28:    <%= f.text_field :firstname, autofocus: true, rows: 10, cols: 10, class: 'form-control', placeholder: 'ENTER FIRST NAME' %> 
2016-05-22T07:53:31.678064+00:00 app[web.1]:  29:   </div> 
2016-05-22T07:53:31.678065+00:00 app[web.1]:  30: 
2016-05-22T07:53:31.678065+00:00 app[web.1]:  31:   <div class="field"> 

Может ли кто-нибудь помочь мне понять это? Большое спасибо :)

+1

Я предполагаю, что столовые растения не существуют в то время, когда вы пытаетесь использовать его в качестве внешнего ключа в изображениях таблицы. Можете ли вы подтвердить, что он делает (добавляет ли предыдущая миграция установки таблиц, чем миграция, которая добавляет внешний ключ к изображениям?) – xyious

+0

@xyious Im просматривает папку моих миграций и не вижу того, что добавляет растения. но он находится в схеме. даже не уверен, что с этим – mGarsteck

+1

Возможно ли, что файл миграции был удален после создания таблицы заводов? У вас есть контроль над версиями? вы можете проверить? – xyious

ответ

0

Благодаря @xyious в комментариях. Каким-то образом несколько миграций были удалены без ведома для меня. Запуск heroku run rake db:schema:load исправил проблему.

2

По-видимому, один из файлов миграции потерян.
Если каталог миграции полностью заполнен или не согласуется с базой данных, вы можете использовать rake db:schema:load, чтобы напрямую создать всю БД.

Смежные вопросы