Intereting Posts
Передача массива requestAction в CakePHP utf-8 специальных символов, не отображающих Почему мои веб-страницы увеличиваются, когда я открываю их в Opera Mobile? показывая самое длинное расстояние для каждого велосипеда и зеленый значок, если более 100 Реализация Shunting Yard в PHP необходима, интерпретирует и анализирует строку, выполняет математическое сравнение и возвращает логический результат Как работает проверка идентификатора OpenID? MySQL – преобразовать символы latin1 в таблицу UTF8 в UTF8 Есть ли функция или переменная PHP, указывающая имя локального хоста? Отфильтровать числа в строке в php Невозможно использовать X как Y, потому что имя уже используется, хотя это не Как заменить ширину и высоту тега iframe html с помощью php? Классы. В чем смысл? Загрузка .zip-файла запускает поврежденный файл php PHP Удалить URL из строки Произошла ошибка клиента: Не удалось создать каталог хранения: / tmp / Google_Client / 00

Как переименовать столбец в laravel с помощью миграции?

У меня есть столбцы, как указано ниже:

public function up() { Schema::create('stnk', function(Blueprint $table) { $table->increments('id'); $table->string('no_reg', 50)->unique(); $table->string('no_bpkb', 50)->unique(); $table->string('nama_pemilik', 100); $table->string('alamat'); $table->string('merk', 50); $table->string('tipe', 50); $table->string('jenis', 50); $table->smallInteger('tahun_pembuatan'); $table->smallInteger('tahun_registrasi'); $table->smallInteger('isi_silinder'); $table->string('no_rangka', 50); $table->string('no_mesin', 50); $table->string('warna', 50); $table->string('bahan_bakar', 50); $table->string('warna_tnkb', 50); $table->string('kode_lokasi', 50); $table->date('berlaku_sampai'); $table->timestamps(); $table->index('created_at'); $table->index('updated_at'); }); } 

Я сделал сеялку для stnk стола

Теперь я хочу переименовать id в id_stnk .
Я добавил «doctrine / dbal» в «композитор» и сделал composer update .

Я сделал миграцию миграции php artisan migration:make rename_column .
Затем я добавил новый метод для rename_column:

 Schema::table('stnk', function(Blueprint $table) { $table->renameColumn('id', 'id_stnk'); }); 

И затем я попытался запустить команду php artisan migrate но я получил ошибку, как указано ниже:

 [Ulluminate\Database\QueryException] SQLSTATE[HY000]: General error: 1025 Error on rename of './my_database/#sql -447_33' to './my_database/stnk' (error: 150) (SQL: ALTER TABLE stnk CHANGE id id_stnk INT UNSIGENED AUTO_INCREMENT NOT NULL) [PDOException] SQLSTATE[HY000]: General error: 1025 Error on rename of './my_database/#sql -447_33' to './my_database/stnk' (error: 150) 

Вам нужно создать еще один файл миграции – и поместите его туда:

Бег

 Laravel 4: php artisan migrate:make rename_stnk_column Laravel 5: php artisan make:migration rename_stnk_column 

Затем в новом файле миграции:

 class RenameStnkColumn extends Migration { public function up() { Schema::table('stnk', function($t) { $t->renameColumn('id', 'id_stnk'); }); } public function down() { Schema::table('stnk', function($t) { $t->renameColumn('id_stnk', 'id'); }); } } 

Первое, что вы хотите сделать, – создать файл миграции.

Введите в командной строке

 php artisan migrate:make rename_stk_column --table="YOUR TABLE" --create 

После создания файла. Откройте новый созданный файл миграции в папке вашего приложения в базе данных / миграции.

В вашем методе up:

 Schema::table('stnk', function(Blueprint $table) { $table->renameColumn('id', 'id_stnk'); }); } 

и в вашем методе вниз:

  Schema::table('stnk', function(Blueprint $table) { $table->renameColumn('id_stnk', 'id); }); } 

то в командной строке просто введите

 php artisan migrate 

Тогда wollah! вы только что переименовали id в id_stnk. Кстати, вы можете использовать

 php artisan migrate:rollback 

для отмены изменений. Удачи

Бросив мои $ 0,02 сюда, так как ни один из ответов не работал, но отправил меня по правильному пути. Случилось так, что предыдущее внешнее ограничение вызывало ошибку. Очевидно, когда вы думаете об этом.

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

 /** * Run the migrations. * * @return void */ public function up() { Schema::table('proxy4s', function (Blueprint $table) { // Drop it $table->dropForeign(['server_id']); // Rename $table->renameColumn('server_id', 'linux_server_id'); // Add it $table->foreign('linux_server_id')->references('id')->on('linux_servers'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('proxy4s', function (Blueprint $table) { // Drop it $table->dropForeign(['linux_server_id']); // Rename $table->renameColumn('linux_server_id', 'server_id'); // Add it $table->foreign('server_id')->references('id')->on('linux_servers'); }); } 

Надеюсь, это спасет кого-то в будущем!

Переименование столбцов (Laravel 5.x)

Чтобы переименовать столбец, вы можете использовать метод renameColumn в построителе Схемы. * Перед переименованием столбца обязательно добавьте зависимость doctrine / dbal к вашему файлу composer.json. *

Или вы можете просто потребовать пакет, используя композитор …

 composer require doctrine/dbal 

Источник: https://laravel.com/docs/5.0/schema#renaming-columns

Примечание. Используйте make: миграция и не перенос : make для Laravel 5.x

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

  php artisan migrate:rollback