ruby on rails - Heroku Deployment failing -
i'm trying deploy app first time in heroku , i'm encountering weird bug. when try run heroku rake db:migrate, see error :
rake aborted! standarderror: error has occurred, , later migrations canceled:
pg::undefinedtable: error: relation "companies" not exist : create table "users" ("id" bigserial primary key, "admin" boolean default 'f', "admin_c" boolean default 'f', "color" character varying, "initial" character varying, "name" character varying, "surname" character varying, "pseudo" character varying, "step" integer, "company_id" bigint, "email" character varying default '' not null, "encrypted_password" character varying default '' not null, "reset_password_token" character varying, "reset_password_sent_at" timestamp, "remember_created_at" timestamp, "sign_in_count" integer default 0 not null, "current_sign_in_at" timestamp, "last_sign_in_at" timestamp, "current_sign_in_ip" character varying, "last_sign_in_ip" character varying, "created_at" timestamp not null, "updated_at" timestamp not null, constraint "fk_rails_7682a3bdfe" foreign key ("company_id") references "companies" ("id") )
i have verified thousand times migrations files users & companies nothing seems bad. don't know do. try database reset etc.. in answer example. nothing working me. have seen before ?? i'm desperate @ point.
ps: , remove made pg , sql3 changes.
so give code if can useful discover problem
company_model :
class company < applicationrecord has_many :users, dependent: :destroy has_many :groups, dependent: :destroy end
user_model :
class user < applicationrecord # include default devise modules. others available are: # :confirmable, :lockable, :timeoutable , :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable belongs_to :company, optional: true has_many :users_group, dependent: :destroy has_many :groups, through: :users_group has_many :users_post, dependent: :destroy has_many :posts, through: :users_post has_many :tasks_users, dependent: :destroy has_many :tasks, through: :tasks_users has_many :requests, dependent: :destroy has_many :groupes_admin, dependent: :destroy has_many :posts, dependent: :destroy has_many :comments, dependent: :destroy has_many :tasks, dependent: :destroy end
company migration :
class createcompanies < activerecord::migration[5.1] def change create_table :companies |t| t.string :name t.string :ref t.timestamps end end end
devise migration :
class devisecreateusers < activerecord::migration[5.1] def change create_table :users |t| ## database authenticatable t.boolean :admin, default: false t.boolean :admin_c, default: false t.string :color t.string :initial t.string :name t.string :surname t.string :pseudo t.integer :step t.references :company, index: true, foreign_key: true t.boolean :admin, default: false t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" ## recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## rememberable t.datetime :remember_created_at ## trackable 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.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true end end
schema :
activerecord::schema.define(version: 20170727071936) create_table "comments", force: :cascade |t| t.string "content" t.boolean "done" t.integer "post_id" t.integer "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["post_id"], name: "index_comments_on_post_id" t.index ["user_id"], name: "index_comments_on_user_id" end create_table "companies", force: :cascade |t| t.string "name" t.string "ref" t.datetime "created_at", null: false t.datetime "updated_at", null: false end create_table "groupes_admins", force: :cascade |t| t.integer "user_id" t.integer "group_id" t.index ["group_id"], name: "index_groupes_admins_on_group_id" t.index ["user_id"], name: "index_groupes_admins_on_user_id" end create_table "groups", force: :cascade |t| t.string "name" t.integer "cat" t.boolean "main" t.boolean "perso" t.integer "effectif", default: 0 t.integer "elm", default: 0 t.integer "elm_d", default: 0 t.integer "date_cat" t.integer "date_id" t.datetime "date" t.integer "company_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["company_id"], name: "index_groups_on_company_id" end create_table "posts", force: :cascade |t| t.text "content" t.boolean "attached" t.integer "attached_cat" t.integer "attached_id" t.boolean "done" t.datetime "done_at" t.integer "done_cat" t.integer "donner_id" t.datetime "upd_at" t.integer "upd_cat" t.integer "updater_id" t.string "title" t.date "deadline" t.integer "group_id" t.integer "user_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["group_id"], name: "index_posts_on_group_id" t.index ["user_id"], name: "index_posts_on_user_id" end create_table "requests", force: :cascade |t| t.integer "user_id" t.integer "group_id" t.datetime "validate_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["group_id"], name: "index_requests_on_group_id" t.index ["user_id"], name: "index_requests_on_user_id" end create_table "subtasks", force: :cascade |t| t.string "title" t.datetime "date" t.boolean "finished" t.datetime "done_at" t.integer "done_id" t.integer "assign_id" t.integer "task_id" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["task_id"], name: "index_subtasks_on_task_id" end create_table "tasks", force: :cascade |t| t.integer "user_id" t.integer "group_id" t.integer "post_id" t.string "title" t.datetime "date" t.boolean "done" t.integer "doner_id" t.datetime "done_at" t.boolean "assigned" t.integer "elm", default: 0 t.integer "elm_d", default: 0 t.datetime "created_at", null: false t.datetime "updated_at", null: false t.index ["group_id"], name: "index_tasks_on_group_id" t.index ["post_id"], name: "index_tasks_on_post_id" t.index ["user_id"], name: "index_tasks_on_user_id" end create_table "tasks_users", force: :cascade |t| t.integer "task_id" t.integer "user_id" t.index ["task_id"], name: "index_tasks_users_on_task_id" t.index ["user_id"], name: "index_tasks_users_on_user_id" end create_table "users", force: :cascade |t| t.boolean "admin", default: false t.boolean "admin_c", default: false t.string "color" t.string "initial" t.string "name" t.string "surname" t.string "pseudo" t.integer "step" t.integer "company_id" 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.index ["company_id"], name: "index_users_on_company_id" t.index ["email"], name: "index_users_on_email", unique: true t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true end create_table "users_groups", force: :cascade |t| t.integer "user_id" t.integer "group_id" t.index ["group_id"], name: "index_users_groups_on_group_id" t.index ["user_id"], name: "index_users_groups_on_user_id" end create_table "users_posts", force: :cascade |t| t.integer "post_id" t.integer "user_id" t.index ["post_id"], name: "index_users_posts_on_post_id" t.index ["user_id"], name: "index_users_posts_on_user_id" end end
the error message suggests you're trying create reference companies
on users
table companies
table doesn't yet exist. try making sure order of migrations such companies
created before users
. can try loading schema @ once rather migrating 1 @ time, heroku run rake db:schema:load
.
disclaimer: rake db:schema:load
wipe of data. best used setting new database. never run against production database contains critical data. once have data need incremental migrations.
Comments
Post a Comment