Ошибка переноса Laravel «Неправильно установлено ограничение внешнего ключа» - PullRequest
0 голосов
/ 09 сентября 2018

в моей базе данных у меня есть таблица instagram_accounts, и я пытаюсь создать идентификатор внешнего ключа этой таблицы с другой таблицей с именем proxy_connections,

Schema::create('proxy_connections', function (Blueprint $table) {
    $table->increments('id');
    $table->string('name');
    $table->integer('page_counts');
    $table->integer('account_id')->unsigned();
    $table->foreign('account_id')->references('id')->on('instagram_accounts')->onDelete('cascade');
    $table->boolean('status')->default(false);
    $table->string('proxy');
    $table->timestamps();
});

и instagram_accounts структура таблицы`:

class InstagramAccounts extends Migration
{
    public function up()
    {
        Schema::create('instagram_accounts', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

            $table->string('uid');
            $table->string('fid');
            $table->string('proxy');
            $table->string('avatar');
            $table->string('username');
            $table->string('password');
            $table->string('page_title');
            $table->tinyInteger('checkpoint');
            $table->mediumText('account_data');
            $table->mediumText('people_data');
            $table->longText('followers')->nullable();
            $table->longText('followings')->nullable();
            $table->tinyInteger('status')->default(0)->nullable();
            $table->string('timezone')->default('Asia/Tehran');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('instagram_accounts');
    }
}

для этой структуры я получаю ошибку, и вы должны знать, что у меня есть больше данных в таблице instagram_accounts, после получения ошибки я пытаюсь использовать другие решения, такие как:

->nullable();
->unsigned();
->unsigned()->nullable();
->unique();
->unique()->nullable();
->unsigned()->index(); 

для всех них я получаю ошибку снова

UPDATE

вывод команды php artisan migrate --pretend:

ProxyConnections: create table `proxy_connections` (`id` int unsigned not null auto_increment primary key, `name` varchar(191) not null, `page_counts` int not null, `account_id` int unsigne
d not null, `status` tinyint(1) not null default '0', `proxy` varchar(191) not null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4
_unicode_ci'
ProxyConnections: alter table `proxy_connections` add constraint `proxy_connections_account_id_foreign` foreign key (`account_id`) references `schedule_instagram_accounts` (`id`) on delete
cascade
ProxyConnections: alter table `proxy_connections` add index `proxy_connections_account_id_index`(`account_id`)

1 Ответ

0 голосов
/ 10 сентября 2018

У меня была такая же проблема, и это было из-за того, что столбец внешнего ключа и столбец ссылок не имели одинаковый тип или длину.

Поэтому убедитесь, что столбец account_id из таблицы proxy_connections и столбец id из таблицы instagram_accounts имеют одинаковый тип или длину.

И то же самое для столбца user_id из таблицы instagram_accounts и столбца id из таблицы users.

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...