Что такое миграции

Оглавление:

Полное руководство по Yii


Миграции Примечание: доступны с версии 1.1.6.

Как и исходный код, структура базы данных изменяется в процессе разработки и поддержки приложения. К примеру, во время разработки может понадобиться добавить новую таблицу или уже после размещения приложения на сервере добавить индекс или столбец.

При этом важно отслеживать изменения в структуре базы данных (называемые миграциями ) также, как мы делаем это для нашего исходного кода.

Если исходный код и база данных не соответствуют друг другу, скорее всего, всё приложение не будет работать. Именно поэтому в Yii есть поддержка миграций, позволяющая отслеживать изменения в базе данных, применять миграции или откатывать уже применённые. Ниже приведён пошаговый процесс использования миграций при разработке: Иван создаёт новую (например, создающую новую таблицу).



Нередко возникает ситуация, когда модель меняется. Например, мы решили внести в нее новые свойства. Но при этом у нас уже имеется существующая база данных, в которой есть какие-то данные.

И чтобы без потерь обновить базу данных ASP.NET MVC предлагает нам такой механизм как миграции.

Например, у нас есть простая модель User: Соответсвенно есть контекст данных, через который мы работаем с бд: И допустим, у нас есть вся инфраструктура для работы с этой моделью — представления, контроллеры, и у нас есть уже в базе данных несколько объектов данной модели.

Но в какой-то момент мы решили изменить модельную базу приложения. Например, мы добавили еще одно поле в модель User: Кроме того, мы решили добавить еще одну модель, например: Таким образом, контекст данных у нас уже меняется следующим образом: Мы можем добавить в представления для модели User дополнительное поле для свойства Age, можем создать контроллер и представления для новой модели, но при попытке добавить новый объект в бд, мы будем получать ошибку:

Что такое миграции

Миграции и начальные данные


Этот перевод актуален для англоязычной документации на 04.12.2014 (ветка 4.2 ). 25.05.2014 (ветка 4.1 ) и 16.10.2014 (ветка 4.0 ).

Опечатка? Выдели и нажми Ctrl+Enter. Введение Миграции — что-то вроде системы контроля версий для вашей базы данных. Они позволяют команде изменять её структуру, в то же время оставаясь в курсе изменений других участников.

Миграции обычно идут рука об руку с построителем структур для более простого обращения с архитектурой вашего приложения. Создание миграций Для создания новой миграции вы можете использовать команду migrate:make командного интерфейса Artisan : будет помещена в папку app/database/migrations и будет содержать текущее время, которое позволяет библиотеке определять порядок применения.

Рекомендуем прочесть:  В наследство досталось ружье

При создании миграции вы можете также передать параметр —path.

Миграция населения и ее влияние на социально-экономическую политику страны


Издавна люди склонны искать для себя максимально удобные и выгодные условия существования.

Именно стремление к лучшей жизни на протяжении веков стимулирует миграционные процессы в России и во всем мире. Исторически так сложилось, что крупными центрами миграции считаются Северная Америка, Канада, Австралия.

В двадцатом веке с развитием и укреплением позиций Европейского Союза, иностранцев стали привлекать государства Западной Европы.

Сюда миграционные потоки манил высокий экономический уровень, прекрасные показатели безопасности, возможность реализации собственного потенциала. Active Record — это особенность Active Record, позволяющая изменять схему вашей базы данных время от времени. Вместо того, чтобы записывать изменения схемы на чистом SQL, миграции позволяют использовать простой Ruby DSL для описания изменений в ваших таблицах.

После прочтения этого руководства, вы узнаете о:

  1. Задачи bin/rails, воздействующие на миграции и вашу схему
  2. Как миграции связаны со schema.rb
  3. Генераторах, используемых для их создания
  4. Методах Active Record, обеспечивающих взаимодействие с вашей базой данных
1. Обзор миграций Миграции — это удобный способ изменять схему вашей базы данных всё время неизменным и простым образом.