sql >> Databáze >  >> RDS >> Mysql

Pouze schéma mysqldump, aktualizace schématu bez poklesu

Jak by MySQL věděl, co má aktualizovat? Nemůže vědět, v jakém stavu bude databáze někoho jiného, ​​takže nemůže vědět, jaké aktualizace použít. Aktualizace také často vyžadují více než jen změnu schématu; mohou vyžadovat změny dat, která již existují, nebo mohou vyžadovat přesun dat ze starého schématu do nového. Nikdy nezískáte něco, co to všechno automaticky zjistí.

Správným řešením je napsat migrace. Pokaždé, když změníte databázi, místo toho, abyste sami změnili schéma své vývojové kopie, napíšete skript pro aktualizaci z předchozího schématu na nové (a obvykle skript pro downgrade zpět na předchozí schéma, takže můžete že pokud potřebujete vrátit aktualizaci). Tento skript dělá vše, co potřebujete ke změně schématu, přesunutí dat a podobně.

Většina moderních webových rámců, jako je Ruby on Rails , mají podporu pro migrace, aby bylo snazší sledovat, jaké migrace jste již spustili. Pokud nepoužíváte framework podporující migrace, nebylo by příliš těžké napsat vlastní skripty pro aplikaci migrací. Stačí očíslovat každou migraci nebo do ní zadat datum a ponechat ve své databázi tabulku, ve které je uložena pouze aktuální verze schématu, na které se nacházíte. Když spustíte skript migrace, pokud existují nějaké migrace novější než aktuální verze, použijte tyto skripty v pořadí a poté aktualizujte číslo v databázi, které říká, na jaké verzi se nacházíte.




  1. Použití JQuery k vložení hodnot do mySQL

  2. Nelze vydat příkazy pro manipulaci s daty pomocí funkce executeQuery()

  3. Yii2 - levé spojení za vícenásobné podmínky

  4. Závislosti Oracle.DataAccess.Client