NHibernate может проверить, была ли схема дб сгенерирована?

Вы можете использовать этот скрипт для компиляции openssl под Windows 7 + Cygwin. Все, что вам нужно, это только изменить местоположение ndk и выбрать версию Android API.

Мой путь шаг за шагом (Win 7 x64 + Cygwin + ndk r10c)

  1. Скопируйте файлы setenv-android-mod.sh и build-all-arch.sh в каталог openssl.

  2. Изменить файл build-all-arch.sh

    • cd openssl-1.0.1j в #cd openssl-1.0.1j (строка 56)

    • cd .. в #cd .. (строка 80)

  3. Изменить файл setend-android-mod.sh

    • _ANDROID_NDK="android-ndk-r10c-x64" изменить на версию ndk (строка 18 )
    • _ANDROID_API="android-19" изменить на вашу версию API (строка 40)
    • ANDROID_NDK_ROOT="d:/work/android/android-ndk-r10c-x64" указать свой каталог (строка 42)
    • ANDROID_TOOLCHAIN="d:/work/android/android-ndk-r10c-x64/toolchains" указать свой каталог (строка 43) )
    • export CROSS_COMPILE="aarch64-linux-android-" - export CROSS_COMPILE="$ANDROID_TOOLCHAIN/aarch64-linux-android-" (строка 219), измените те же строки 225, 231, 237, 243 - просто добавьте $ANDROID_TOOLCHAIN/ в путь кросс-компиляции.

Выполнить build-all-arch.sh.

Все библиотеки (*.so) будут расположены в /prebuilt/ реж.

[Тысячу сто сорок одна] P.S. У меня было еще несколько ошибок из-за неправильных символических ссылок, но все было хорошо после выполнения следующей команды export CYGWIN="winsymlinks:native", см. здесь для деталей. [Тысячу сто сорок одна]

9
задан rae1 5 August 2013 в 18:18
поделиться

4 ответа

Нет, NHibernate не выполняет то, что вы просите. Я предполагаю, что можно было бы написать код, который экспортировал схему, а затем сравнивал бы ее со схемой базы данных. Но, вероятно, было бы проще экспортировать во временную базу данных и использовать сторонний инструмент, такой как redgate SQL Compare, для сравнения схем.

Даже если он сделал то, о чем вы просите, я не буду » Я не вижу, как это поможет при развертывании, потому что его цель - создать базу данных с нуля.

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

  • Попытка загрузить один из объектов подключаемого модуля и перехватить исключение.
  • Изучить схему базы данных (используя SMO для SQL Server), чтобы проверить, существуют ли таблицы.
  • Создайте запись в таблице. при развертывании плагина.
3
ответ дан 4 December 2019 в 07:04
поделиться

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

После первого развертывания я настоятельно рекомендую использовать инструмент миграции, который поможет вам в дальнейших расширениях / модификациях схемы. Если вы подумаете немного дальше, то заметите, что вам даже требуется манипулирование данными (например, удаление неправильных данных, которые были сгенерированы из-за ошибки) по мере развития вашего приложения. Это все, с чем может вам помочь инструмент миграции.

Взгляните на:

Вот список дополнительных инструментов миграции для .net, на которые ответили в вопросе SO:

Первоначальная идея миграции возникла из Ruby on Rails и в прошлом «клонировался» в другие фреймворки. Который'

2
ответ дан 4 December 2019 в 07:04
поделиться

Если у вас есть VS Team Suite или версия Database Developer, она может синхронизировать и отслеживать изменения, а затем создать сценарий развертывания, который создаст для вас все нужные объекты. Также RedGate имеет продукт для сравнения схем, который делает то же самое, если я не ошибаюсь.

0
ответ дан 4 December 2019 в 07:04
поделиться

Я думаю то, что вы ищете, это SchemaUpdate.Execute вместо использования SchemaExport . SchemaUpdate создаст схему, если она еще не существует, или обновит ее при необходимости и желании.

Это работает для меня с использованием как MSSQL, так и SQLite.

new SchemaUpdate(config).Execute(false, true);
17
ответ дан 4 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: