Mysql
 sql >> база данни >  >> RDS >> Mysql

Само схема mysqldump, актуализиране на схемата без изпускане

Как MySQL знае какво да актуализира? Той не може да знае в какво състояние ще бъде базата данни на някой друг, така че не може да знае какви актуализации да приложи. Също така, актуализациите често изискват повече от просто промяна на схемата; те може да изискват промени в данни, които вече съществуват, или може да се наложи данните да бъдат преместени от старата схема към новата. Никога няма да получите нещо, което автоматично ще открие всичко това.

Правилното решение е да напишете миграции. Всеки път, когато промените базата данни, вместо просто сами да промените схемата на вашето копие за разработка, вие пишете скрипт за актуализиране от предишната схема към новата (и обикновено скрипт за понижаване обратно до предишната схема, така че можете да направите че ако трябва да върнете актуализация). Този скрипт прави всичко необходимо за промяна на схемата, преместване на данни и други подобни.

Повечето съвременни уеб рамки, като Ruby on Rails , имате поддръжка за миграции, за да улесните проследяването на какви миграции вече сте изпълнили. Ако не използвате рамка, която поддържа миграции, няма да е трудно да напишете свои собствени скриптове за прилагане на миграции. Просто номерирайте всяка миграция или поставете дата в нея и поддържайте таблица във вашата база данни, съхраняваща само текущата версия на схемата, на която сте. Когато стартирате скрипта си за мигриране, ако има някакви миграции, по-нови от текущата версия, приложете тези скриптове по ред и след това актуализирайте номера в базата данни, който казва на коя версия сте.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на клауза union и order by в mysql

  2. Селективно изтривайте предимно дублиращи се записи от MySQL

  3. Как да премествам колони в MySQL таблица?

  4. Как да сумирате една колона въз основа на групиране в MySQL

  5. MySQL не използва индекс за ORDER BY