私はherokuで初めてアプリケーションをデプロイしようとしています。私は変なバグに遭遇しています。私が実行しようとするとHerokuのは、DBを熊手:移行、私はこのエラーを参照してください。Herokuデプロイメントに失敗しました
rake aborted! StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedTable: ERROR: relation "companies" does 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")
)
私は千回私のマイグレーションファイルのユーザー&会社を確認しましたが、何も悪いようです。だから私は本当に何をすべきか分からない。私もすべてのデータベースのリセットなどを試してください。 このような場合answerのように。しかし、何も私のために働いていません。誰もこれを前に見たことがありますか?私はこの時点で本当に必死です。
PS:また、pgとsql3の変更を削除しました。
それが問題を発見する
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 and :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
会社の移行:
class CreateCompanies < ActiveRecord::Migration[5.1]
def change
create_table :companies do |t|
t.string :name
t.string :ref
t.timestamps
end
end
end
考案の移行:
class DeviseCreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users do |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
はスキーマ:
ActiveRecord::Schema.define(version: 20170727071936) do
create_table "comments", force: :cascade do |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 do |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 do |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 do |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 do |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 do |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 do |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 do |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 do |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 do |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 do |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 do |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
私は英雄に同じです、私はホストを変更しなければなりません –
2つの質問。あなたの 'ユーザーの移行の前にあなたの'企業 'の移行ですか? 'rake db:schema:load'を試してみましたか?あなたのコメント@mのために –
ありがとう。サイモンボルグ、私はその点については分かりませんでした。私はdeviseが実装されたテンプレートを作成しました。私が前に他のモデルを持っているのは初めてです。私は移行ファイルの順序を変更し、あなたが言ったようにdb:schema:loadを実行しました。そして、それははるかに良いです。あなたのアドバイスをありがとう。良い継続 –