Перенос базы данных SQL с версии 2014 на версию 2012 — mvc codefirst

#sql-server #asp.net-mvc #migration #code-first

#sql-сервер #asp.net-mvc #миграция #сначала код

Вопрос:

Я разрабатываю проект с помощью ASP.net-MVC, и, поскольку это первая модель, он автоматически генерирует файлы .mdf и .ldf базы данных. и база данных находится в версии 2014. когда я хотел загрузить его на хост-сервер, мне сказали, что они не поддерживают верхнюю версию 2012. итак, мне нужно перенести мою базу данных с версии 2014 на версию 2012.

моя база данных не такая уж большая. и я следую этой статье https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version / шаг за шагом, но никаких различий в моей версии базы данных не произошло. его все еще Product Version:12.0.2000.8

действительно ценю вашу помощь. Спасибо

Комментарии:

1. В случае понижения уровня ядра БД, возможно, вам необходимо преобразовать / повторно сохранить базу данных разработки в соответствующую версию, которую вы хотите запустить, чтобы избежать потенциальных проблем с миграцией. Затем вы можете установить EF point на версию 2012, убедитесь, что у вас есть резервные копии, прежде чем перенастраивать EF.

2. SSMS — это программное обеспечение на стороне клиента, помогающее вам отслеживать экземпляры вашего SQL Server. Если у вас нет экземпляра SQL Server, вам необходимо установить его на своем хост-сервере. Все SSMS 2012, 2014 или 2016 совместимы с экземплярами SQL Server 2012. Я никогда не переношу базу данных с верхней версии на нижнюю, поэтому не могу вам в этом помочь. Но я уверен, что резервная копия не подходит, потому что файл резервной копии имеет .bck расширение, и у вас есть необработанные файлы базы данных с данными .mdf и журналом .ldf .

3. @TetsuyaYamamoto спасибо за вашу помощь. у вас есть какие-либо идеи, как это сделать? Я никогда не слышал, чтобы можно было изменить версию базы данных, которая EFW ее генерирует. если вы знаете, как я буду признателен, если расскажете мне, как это сделать, большое спасибо

4. @MincongHuang спасибо за любезную помощь. Я думал как-нибудь преобразовать файлы mdf и ldf в файл .bak. итак, у вас есть какие-либо идеи, как решить эту проблему? в любом случае, вы много сделали. спасибо 100000..0000 раз

5. @TetsuyaYamamoto вы имели в виду, что перед созданием проекта измените версию entity frame work?

Ответ №1:

Сначала вы разрабатываете базу данных на основе модели, поэтому у вас есть все возможности для создания / изменения базы данных.

Вам не нужно переносить базу данных, но в Visual Studio вы можете повторно сгенерировать базу данных в sql server 2012.

Чтобы сгенерировать базу данных в sql 2012, выполните те же действия, что и при создании базы данных для sql 2014 в Visual Studio, просто для напоминания:

  • В области проектирования EDMX щелкните правой кнопкой мыши -> Создать базу данных из модели, следуйте инструкциям мастера и создайте новое подключение к sql2012.

В конце мастера создается новая база данных в sql server 2012.

  • Сценарий Sql также автоматически генерируется с именем, например, model.edmx.sql, включая все DDL сущности и ассоциаций…

  • Извлеките этот скрипт из VS, вы можете выбрать подключение и выполнить скрипт на новом сервере базы данных 2012.

  • Для данных вы можете использовать утилиту bcp или мастер экспорта в SSMS.

Обновить:

В подходе Model First вы создаете диаграмму, которая будет автоматически преобразована в закодированную модель, и модель сохраняется в EDMX (XML-файл).

Если в проекте нет EDMX, это означает, что вы не использовали подход ModelFirst, но вы можете использовать шаблон проекта MVC, который автоматически генерирует базу данных в начале проекта.

Преимущество модели First заключается в простоте изменения и синхронизации между средой разработки и производством для будущих изменений.

Вы можете перепроектировать свой проект и добавить подход ModelFirst, даже если вы создали базу данных.

Оттуда вы можете заново создать базу данных в sql server 2012. Я описываю пошаговое руководство по созданию вашего режима:

Построение модели данных из существующей базы данных в EntityFramework 6 для подхода ModelFirst

Комментарии:

1. да, мне нужно именно что-то подобное. позвольте мне попробовать. Я думаю, что я так близок к ответу

2. Извините, я не нашел никакого файла EDMX. Я ничего не выбирал. visual Studio сама создает все EFW, а также базу данных. возможно ли дать мне пошаговое руководство. Спасибо.

3. В подходе Model First вы создаете диаграмму, которая будет автоматически преобразована в закодированную модель, и модель сохраняется в EDMX (XML-файл). Если в проекте нет EDMX, это означает, что вы не использовали подход Model First, но вы можете использовать шаблон в проекте MVC, который автоматически генерирует базу данных при запуске проекта. Преимущество модели First заключается в простоте изменения и синхронизации между средой разработки и производством для будущих изменений.

4. да, именно я использую шаблон. действительно спасибо, а также именно то, что я искал, еще раз спасибо

Ответ №2:

Уровень совместимости должен быть установлен на SQL Server 2012 (110), прежде чем следовать инструкциям https://www.mssqltips.com/sqlservertip/2810/how-to-migrate-a-sql-server-database-to-a-lower-version /

Чтобы изменить уровень совместимости, перейдите в свойства базы данных-> Параметры-> Уровень совместимости

При запуске сценария вывода он должен быть запущен на целевом сервере (2012). Резервные копии последних версий не могут быть восстановлены в более ранних версиях.

Комментарии:

1. Большое вам спасибо. Я сделал это, но все равно никакой разницы, но действительно спасибо за ваше время и помощь

Ответ №3:

Посмотрите здесь

Установка изменит вашу базу данных с 2014 на 2012.

Комментарии:

1. большое вам спасибо за вашу заботу. Я выполняю все эти шаги, но ничего не происходит. Я проверяю версию здесь, и каждый раз она такая же, как и раньше. https://support.microsoft.com/en-us/kb/321185 Я также попросил хост-сервер проверить его после всех этих изменений, но все равно ничего не произошло