Я работаю с Laravel 5.6 и Heroku с базой данных Postgres.
Я загрузил свое приложение в Heroku, форма входа показывает его правильно.
Проблема возникает при выполнении миграции таблиц с:
heroku run php artisan migrate
и используя Postgres of Heroku, я сделал все настройки правильно, но при выполнении миграции это происходит:
В строке Connection.php 664:
SQLSTATE [42830]: Неверный внешний ключ: 7 ОШИБКА: нет уникального
ограничение соответствия заданным ключам для указанных "пользователей" (SQL:
изменить таблицу «продажи» добавить ограничение «внешний_пользователь_идентификатор_приложения» внешний ключ
("user_id") ссылается на "us ers" ("id"))
В строке 458 Connection.php:
SQLSTATE [42830]: Неверный внешний ключ: 7 ОШИБКА: нет уникального
ограничение, соответствующее данным ключам для указанных "пользователей"
Странно то, что одна и та же миграция локально не вызывает у меня никаких проблем (MySQL), но Heroku с Postgres показывает ошибку.
Это мои миграции пользователей и продаж:
Пользователи:
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->integer('id')->unsigned();
$table->foreign('id')->references('id')->on('people')->onDelete('cascade');
$table->string('user')->unique();
$table->string('password');
$table->boolean('state')->default(1);
$table->integer('idRole')->unsigned();
$table->foreign('idRole')->references('id')->on('roles');
$table->rememberToken();
//$table->timestamps();
});
}
Продажи:
public function up()
{
Schema::create('sales', function (Blueprint $table) {
$table->increments('id');
$table->integer('client_id')->unsigned();
$table->foreign('client_id')->references('id')->on('people');
$table->unsignedInteger('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users');
$table->dateTime('date_time');
$table->decimal('total', 11, 2);
$table->string('status', 20);
$table->timestamps();
});
}
Я не знаю, почему у меня эта ошибка в Heroku, но все работает локально. Как я могу это исправить?