как создать миграцию laravel для типа данных массива postgresql

У меня есть следующий метод миграции laravel up

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->string('mobile')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        // $table->string('sports');
        $table->date('dob');
        $table->string('height');
        $table->rememberToken();
        $table->timestamps();
    });

    DB::statement('ALTER TABLE users ADD COLUMN sports TYPE text[] AFTER password');
}

когда я запускаю миграцию, он показывает SQLSTATE [42601]: синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в тексте или рядом с ним LINE 1: ALTER TABLE users ADD COLUMN sports TYPE text[] AFTER passwo... ^ (SQL: ALTER Пользователям TABLE ДОБАВЬТЕ СТОЛБЦЫ спорт (TYPE text[] ПОСЛЕ пароля). не знаю в чем там проблема?


person Divyesh Jesadiya    schedule 22.03.2021    source источник


Ответы (1)


пожалуйста, попробуйте свой оператор Sql следующим образом:

 DB::statement('alter table users alter sports drop default');
    DB::statement('alter table users alter sports type text[] using array[sports]');
    DB::statement("alter table users alter sports set default '{}'");
person OMR    schedule 22.03.2021
comment
он работает, но, наконец, добавит столбец, он мне нужен только после столбца «пароль» - person Divyesh Jesadiya; 22.03.2021
comment
как насчет: DB::statement('ALTER TABLE users ALTER COLUMN sports TEXT[]'); - person OMR; 22.03.2021
comment
или DB::statement('ALTER TABLE users MODIFY COLUMN sports TEXT[]'); - person OMR; 22.03.2021
comment
SQLSTATE [42601]: синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в или рядом с ИЗМЕНЕНИЕМ СТРОКИ 1: пользователи ИЗМЕНЕНИЯ ТАБЛИЦЫ ИЗМЕНЯЮТ СТОЛБЦЫ спортивные ТЕКСТ[] ^ (SQL: пользователи ИЗМЕНЯЮЩИХ ТАБЛИЦ ИЗМЕНЯЮТ СТОЛБЦЫ спортивные ТЕКСТ[]) - person Divyesh Jesadiya; 22.03.2021
comment
SQLSTATE[42601]: синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в строке текста 1 или рядом с ней: пользователи ALTER TABLE ALTER COLUMN sports TEXT[] ^ (SQL: пользователи ALTER TABLE ALTER COLUMN sports TEXT[]) - person Divyesh Jesadiya; 22.03.2021
comment
comment
stackoverflow.com/a/1356875/10573560 - person OMR; 22.03.2021
comment
SQLSTATE [42601]: синтаксическая ошибка: 7 ОШИБКА: синтаксическая ошибка в или рядом с ИЗМЕНЕНИЕМ СТРОКИ 1: ИЗМЕНЕНИЕ ТАБЛИЦЫ пользователей ИЗМЕНЕНИЕ спортивного ТЕКСТА [] ^ (SQL: ИЗМЕНЕНИЕ ТАБЛИЦЫ пользователей ИЗМЕНЕНИЕ спортивного ТЕКСТА []) - person Divyesh Jesadiya; 22.03.2021
comment
Я обновил свой ответ, посмотрите текущее решение - person OMR; 22.03.2021