Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uruchom surowy SQL podczas migracji

Problemem (jak powiedział @postashin) był backticks.

Od Laravela 5 (nie jestem pewien co do Laravela 4) mogłeś to zrobić:

DB::statement('ALTER TABLE `users` MODIFY `age` DATETIME');

W rzeczywistości nie potrzebowałeś nawet tylnych kleszczy, ponieważ nie potrzebują one ucieczki. Więc mogłeś po prostu napisać:

DB::statement('ALTER TABLE users MODIFY age DATETIME');

Nie potrzebujesz tego również w zamknięciu, jeśli tylko wykonujesz instrukcję bazy danych.

Jednak lepsze podejście do tego, co robisz, jest następujące:

Schema::table('users', function(Blueprint $table) {
    $table->dateTime('age')->change();
});

Zauważ, że ostatnie rozwiązanie może czasami wywołać błąd z powodu błędu w Doctrine, który zwykle występuje, jeśli masz wyliczenie w tabeli (nie tylko zmienianą kolumnę).

Aby uzyskać więcej informacji, zobacz Migracja bazy danych Laravel — modyfikacja kolumny



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukrywanie prawdziwego identyfikatora obiektu bazy danych w adresach URL

  2. utworzyłem tablice w PHP 5.6 z [] w PHP 7.1 dają błąd krytyczny

  3. MySQL z Entity Framework — co robię źle?

  4. Jak wyświetlić rekordy w pionie w wierszu poleceń mysql?

  5. Pokaż wszystkie aktualne blokady z get_lock