2009-07-01 3 views
2

Я запускаю проект ASP.NET MVC с использованием SubSonic 3 ActiveRecord. Я добавил таблицу «Пользователи с идентификатором первичного ключа» и перекомпилировал файлы T4 для генерации класса User.Определение миграции SubSonic 3 ActiveRecord

Я хочу убедиться, что, поскольку я согласен с разработкой, я могу регенерировать/переносить базу данных в любой момент. Похоже, мне нужно создавать таблицы и отношения в базе данных, восстанавливать классы ActiveRecord и выполнять миграцию, как описано в http://subsonicproject.com/docs/3.0_Migrations. Старый способ 2.x определения миграции больше не доступен.

Есть ли способ управлять разработкой из кода, а не базы данных, путем изменения классов моделей и, соответственно, миграции базы данных, без использования SimpleRepository? Я не хочу помещать сгенерированный код в репозиторий исходного кода, но если я этого не делаю, я теряю схему базы данных (если я не экспортирую и не сохраню ее вручную).

ответ

4

Вы все еще можете использовать SubSonic 3 как DAL и позволить SubSonic 2.2 генерировать миграцию для вас. Вам просто нужен sonic.exe и его зависимости для выполнения файлов миграции.

Чтобы быть более точным, у меня есть миграция папки в моем проекте DataLayer, который хранит все файлы миграции, но не устанавливает BuildAction в none. Таким образом, у меня есть выделение синтаксиса (но проверка ошибок отсутствует, если я не верну сборку BuildAction), но код не испортил мой проект.

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

Кроме того, я назвал свой файл конфигурации mig.config (вместо app.config/web.config) и использовал эту командную строку для выполнения моих миграций.

Command:   /path/to/sonic.exe 
Arguments:   migrate /config migration.config 
Working Directory: $(SolutionDir)MyProject.Datalayer 

Обратите внимание на переключатель/config, чтобы переопределить конфигурационный файл, который ищет sonic.exe.

0

Документ, который вы связаны ли состояние:

«Итог: если вы разработчик, который озабочен проектирования баз данных, миграция не может быть для вас»

Я подозреваю, что для деталей дизайна вы хотите (и я бы тоже), миграция может оказаться непригодной?

+0

Это вещь: я не особо обеспокоен проектирования баз данных, и я хочу водить его из кода, а не писать миграции вручную, но я см. простой способ сделать это при использовании SubSonic Active Record. – glebd

Смежные вопросы