php - One to one relationship error on can't alter table when run artisan command -


i've multiple packages , users can have 1 package @ time, not multiple. so, i've created 1 one relationship , added foreign key in users table.

here's relevant users table:

public function up() {     schema::create('users', function (blueprint $table) {         $table->increments('id');         $table->string('name');         $table->string('email')->unique();         $table->string('password', 60);         $table->string('role');         $table->unsignedinteger('package_id');         $table->remembertoken();         $table->nullabletimestamps();          $table->foreign('package_id')             ->references('id')             ->on('packages');     }); } 

and here's packages table:

public function up() {     schema::create('packages', function (blueprint $table) {         $table->increments('id');         $table->string('name');         $table->integer('price');         $table->integer('space');         $table->string('space_type');         $table->string('trial')->nullable();         $table->string('trial_period')->nullable();         $table->string('password_protected_links')->nullable();         $table->nullabletimestamps();     }); } 

however, when ran php artisan migrate:refresh appeared following error:

[illuminate\database\queryexception]   sqlstate[hy000]: general error: 1005 can't create table 'clouder.#sql-834_1   4' (errno: 150) (sql: alter table `users` add constraint users_package_id_f   oreign foreign key (`package_id`) references `packages` (`id`))  [pdoexception]   sqlstate[hy000]: general error: 1005 can't create table 'clouder.#sql-834_1   4' (errno: 150) 

however, believe i've created foreign key correctly. there else i've made mistake?

i've fixed issue myself now. issue experiencing caused order of migration. create_users_table migration comes laravel 5.2 out of box such when i've created new migrations create_packages_table order of create_users_table migration on first , loading before create_packages_table. such when query trying create foreign key can't find column on packages table. so, renaming create_users_table date ensure loads after create_packages_table fixed issue.

i hope may find helpful in days.


Comments

Popular posts from this blog

php - Wordpress website dashboard page or post editor content is not showing but front end data is showing properly -

How to get the ip address of VM and use it to configure SSH connection dynamically in Ansible -

javascript - Get parameter of GET request -