Развертывание базы данных для веб-сайта ASP .NET - PullRequest
1 голос
/ 28 сентября 2008

Я просто просматривал вопросы о переполнении стека и подошел к сообщению, в котором предлагается развернуть базу данных, просто скопировав файл mdf в папку app_data и изменив строку подключения.

Я знаю, что некоторые люди создают mdf-файл в app_code во время разработки, но для запуска, действительно ли это жизнеспособный способ и хорошая практика для развертывания вашей базы данных?

Во время разработки я обычно пишу свой собственный файл сценария SQL для построения базы данных и запускаю его на моем локальном сервере SQL. Когда сайт собирается начать работу, я запускаю скрипт на целевом сервере и настраиваю свой сайт для связи с базой данных. Если честно, я никогда не использовал папку app_code для хранения базы данных, я обычно использую ее для хранения логики уровня доступа к данным ..

Я что-то здесь не так делаю? Действительно ли полезно использовать папку app_data для хранения вашей базы данных? Одна проблема, которую я вижу при использовании этого метода, заключается в том, что развертывание будет медленным. Передача файла mdf через Интернет определенно будет намного медленнее, чем запуск моих файлов сценариев sql. Ждем ваших мыслей и опыта по этим вопросам. Приветствия.

Ответы [ 5 ]

2 голосов
/ 28 сентября 2008

Я лично предпочитаю ваш метод развертывания баз данных и вижу одно большое преимущество в этом: обычно Web и DBServer не должны быть одной машиной (Security, Maintainability, ...), и использование папки app_code для хранения вашей базы данных кажется немного доверчиво.

1 голос
/ 28 сентября 2008

Сценарий развертывания app_data полезен для веб-сайтов, на которых у вас нет отдельного сервера базы данных (многие бесплатные / менее дорогие хосты позволяют вам это делать).

Теоретически это похоже на старый метод использования доступа в качестве базы данных для небольших классических веб-сайтов ASP.

1 голос
/ 28 сентября 2008

Другим недостатком является то, что развертывание файла MDF будет работать только в первый раз. Это будет неадекватно, как только вы живете, и вам необходимо сохранить данные.

0 голосов
/ 28 сентября 2008

На самом деле, на мой взгляд, развертывание БД может быть полезным для инструментов сайта, массовых депиляций и т. Д. Развертывание готового приложения, включающего базу данных, может быть простым процессом. Если последующие версии этого обновляются, все, что нужно сделать, это знать, является ли это обновление или нет. Если это так, запустите скрипт, который обновляет локальную базу данных, в противном случае скопируйте в новую базу данных. Может упростить некоторые ограниченные сценарии.

0 голосов
/ 28 сентября 2008

По моему опыту, лучшая практика предполагает использование какого-то процесса сборки (возможно, автоматизированного или сценария, как вы упомянули). Затем вы делите свою базу данных на следующее: 1) Однократные события - обычно вы создаете базу данных один раз; Вы можете вставить данные один раз или начальное развертывание; изменения схемы - они обрабатываются вне процесса сборки. 2) Хранимые процедуры, пользовательские функции и другие повторяемые события - обрабатываются процессом сборки.

Процесс сборки затем развертывает конструкции базы данных при развертывании кода.

Хранимые процедуры и т. Д. Записываются так, что, если они существуют, они сначала удаляются, а затем создаются снова.

Эти сценарии затем сохраняются в вашем хранилище кода, а не в mdf. Теперь вы можете создавать версии, вести историю, управлять процессом сборки и т. Д. Что касается папки - я бы создал отдельную папку проекта для основных конструкций базы данных - они отличаются от «кода» и должны рассматриваться как таковые. Но они, вероятно, должны быть частью вашего решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...