sql >> Databasteknik >  >> RDS >> Mysql

Kör rå SQL vid migrering

Problemet (som @postashin sa) var backticks.

Från och med Laravel 5 (osäker på Laravel 4) kunde du ha gjort detta:

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

Faktum är att du inte ens behövde de bakre fästingarna eftersom de inte behöver fly. Så du kunde bara ha skrivit:

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

Du behöver inte heller detta i stängningen om du bara kör en databassats.

Men ett bättre förhållningssätt till vad du gör är följande:

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

Observera att den sista lösningen ibland kan ge upphov till ett fel på grund av en bugg i Doctrine, vilket vanligtvis uppstår om du har en uppräkning i tabellen (inte bara kolumnen du ändrar).

För mer information, se Laravel Database Migration - Modifying Column



  1. Hur SQLite Quote() fungerar

  2. pg_dump postgres-databas från fjärrserver när port 5432 är blockerad

  3. Hur förbättrar man prestandan för datetime-filtrering i SQL Server?

  4. MySQL-injektion av LIKE-operatör