#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
Я также попросил хост-сервер проверить его после всех этих изменений, но все равно ничего не произошло