-
Notifications
You must be signed in to change notification settings - Fork 20
ru_Build
Чтобы попробовать инструментарий YB.ORM в вашем окружении нужно собрать саму библиотеку и утилиту командной строки для генерации кода. Есть несколько способов это сделать.
-
Для пользователей Windows, более простой способ - взять готовый пакет, совместимый с вашим компилятором, См. Готовые пакеты.
-
В любом окружении вы можете скачать один из релизов в виде архива с исходным кодом, сконфигурировать и собрать его. Доступны для использования две системы сборки: Autotools и CMake, см. Сборка с помощью Autotools и Сборка с помощью CMake.
-
Для систем на базе Debian GNU/Linux и Ubuntu можно собрать
.deb
пакет.
Используйте Git чтобы получить свежий код из репозитория, см. Git репозиторий проекта YB.ORM, и уже потом использовать Autotools или CMake.
Затем вам вероятно захочется настроить тестовую БД, чтобы прогнать тесты и примеры, см. Настройка тестовой БД.
В каждом релизе YB.ORM есть готовые пакеты для разработчиков, использующих Microsoft Windows, в виде .zip-файлов - чтобы было легче поэкспериментировать с данным инструментарием. Эти пакеты собраны с конкретными версиями библиотек Boost или Qt. Собраны они конкретными версиями компиляторов C++ (напр. MinGW 4.4, MSVC 2013, MSVC 2010, и т.д.). Версия, собранная с Boost, включает в себя все необходимые компоненты библиотек Boost, в то время как версия, собранная с Qt, требует установки соответствующей версии Qt SDK вручную. По умолчанию, версия с Boost имеет в качестве бакэнда для БД ODBC драйвер и родной драйвер для SQLite, версия с Qt использует QtSql. Конечно, вы можете пересобрать YB.ORM с использованием того тулкита/компилятора/бакэнда для БД, который вам подходит, исходный код имеется.
Замечание для Qt4 и MinGW: Qt4 SDK было собрано производителем с использованием компилятора MinGW 4.4.0, который более не доступен с официального сайта, но его можно взять здесь.
Готовый пакет в виде .zip файла, содержащий библиотеку YB.ORM, собранную для
Microsoft Windows, обычно распаковывается в папку
c:\yborm-<версия>-<компилятор>
. Ниже приведенное описание использует папку
c:\yborm
в качестве корня. После извлечения образуется следующая структура
папок:
Путь | Описание |
---|---|
c:\yborm | корень установки инструментария YB.ORM |
c:\yborm\bin |
|
После распаковки можно запускать примеры и тесты из папки examples
без
каких-либо дополнительных настроек.
Самый простой способ собрать YB.ORM под MS Windows - это пересобрать один из
готовых пакетов. Это может быть полезно, к примеру, если у вас уже установлен
YB.ORM, и просто нужна более свежая версия из Git, или если вы скачали сборку
с Qt и хотите пересобрать с Boost. В этом случае поместите свежие исходники в
папку src
, затем используйте окно командной строки чтобы перейти cd
в
папку build
и запустите соответствующий файл build-*.bat
оттуда. Если вы
используете MS Visual C++ то следует запускать сборку из командной строки
Visual Studio command line prompt. Все такие файлы .bat
просто вызывают
CMake с предопределенными параметрами, а затем запускают команду типа make
.
После того, как сборка успешно завершилась, новые библиотеки, заголовочные
файлы, примеры и утилита генерации кода заменят старые файлы в соответствующих
папках. Ниже приведены необходимые требования для пересборки.
Система сборки:
|
Убедитесь, что задан правильный режим сборки (с или без Qt) а также установите
переменную PATH
для запуска компилятора и утилит из Qt SDK в фале
\bin\yborm_env.bat
.
Тем же образом можно пересобрать пример Auth и примеры Tutorial (только без
Qt) в папках build-auth
и build-tut
, соответственно.
Это программное обеспечение разрабатывается, в основном, под Ubuntu Linux, с использованием инструментов GNU, включая GNU Autotools. Вы можете собрать YB.ORM в среде, совместимой с POSIX, такой как Linux, FreeBSD, Mac OS X или Cygwin. Типичная последовательность шагов:
$ sh autogen.sh # создать скрипт configure; требуется после "git clone", не для исходников из тарбола с релизом
$ ./configure --prefix=/home/user1/yb-orm --with-test-db-url=sqlite+sqlite:///home/user1/test1_db.sqlite --disable-static
$ make
$ make check # для запуска тестов понадобится создать базу /home/user1/test1_db.sqlite
$ make install # будет установлено в /home/user1/yb-orm
Скрипт configure
пытается автоматически определить доступность и
расположение библиотек и заголовочных файлов. Есть несколько опций для этого
скрипта, которые управляют этим поиском. Также можно указать строку
подключение к тестовой базе. Чтобы включить сборку с Qt используйте опции
\--with-qt-includes
, \--with-qt-libs
, для сборки с wxWidgets используйте
опцию \--with-wx-config
.
$ ./configure --help
...
--prefix=PREFIX Корень установки файлов, по умолчанию [/usr/local]
--with-qt-includes=DIR Директория с заголовочными файлами QT
--with-qt-libs=DIR Директория с библиотеками QT
--with-wx-config=BIN Конфигурационный скрипт библиотеки wxWidgets
--with-boost=DIR Директория, куда установлен Boost
--with-soci-includes=DIR
Директория с заголовочными файлами SOCI
--with-soci-libs=DIR Директория с библиотеками SOCI
--with-test-db-url=dialect+driver://user:password@database or like
Строка подключения (URL) для тестовой БД
...
Пользовательские макросы, используемые в скрипте configure
, помещаются в
acinclude.m4
. Если вы собираете свое приложение с помощью Autotools и
YB.ORM, можно взять макрос YB_CHECK_YBORM()
в свой файл configure.ac
. Это
добавит опцию \--with-yborm-root
к вашему скрипту configure
. Смотрите
пример: приложение
Auth.
Сборка YB.ORM с библиотекой Boost проверялась в среде Ubuntu Linux, начиная с версии 8.04. Следующие версии пакетов должны подойти:
-
libboost-thread-dev >= 1.34.1
-
libboost-date-time-dev >= 1.34.1
-
libxml2-dev >= 2.6.31
-
libcppunit-dev >= 1.12.0 (если вы собираетесь запускать наборы тестов)
-
autoconf >= 2.61
-
automake >= 1.10.1
-
libqt4-dev >= 4.5 (проверялось на Ubuntu 9.04)
-
libwxgtk2.8-dev >= 2.8.12
Для доступа к базе данных потребуется что-то из следующего:
-
libsqlite3-dev >= 3.7.9
-
soci >= 3.2.0
-
unixodbc-dev >= 2.2.14 (чтобы заработала связка Oracle ODBC под Ubuntu 8.04 64bit пришлось использовать unixODBC = 2.3.0)
-
instantclient >= 10.2 (клиент и драйвер ODBC для Oracle)
-
libmyodbc >= 5.1.10
-
odbc-postgresql >= 09.00.0310
GNU Autotools бесполезны когда дело доходит до компиляторов Microsoft Visual C++ или других компиляторов под Windows, кроме MinGW GCC. Поэтому добавлены скрипты CMake для сборки YB.ORM под Windows, хотя для окружения POSIX они так же подойдут. Этот метод сборки был протестирован для следующих версий ПО:
-
MS Visual C++ 2013 Express Edition, Boost 1.53.0
-
MS Visual C++ 2010 Express Edition, Boost 1.46.1, Qt 4.8.1
-
MS Visual C++ 2008 Express Edition, Boost 1.38.0, Qt 4.8.1
-
MinGW GCC 4.4.0, Boost 1.46.1, Qt 4.8.1
-
Ubuntu Linux GCC 4.6.3, Boost 1.46.1, Qt 4.8.1
Загрузить CMake 2.8 можно отсюда:
http://www.cmake.org/cmake/resources/software.html Убедитесь, что команда
cmake
доступна через переменную окружения PATH
.
Можно передать CMake параметры, здесь есть несколько примеров:
-G "NMake Makefiles"
|
Для запуска тестов и примеров нужна настроенная тестовая БД. Если вы загрузили
готовый пакет для Windows, то в нем уже есть файл с базой SQLite3, находится
тут: c:\yborm\examples\test1_db
, при условии что пакет распакован в папку
c:\yborm
. В остальных случаях нужно создать базу данных (или схему), а затем
создать в ней тестовые таблицы.
В случае если используется ODBC, нужно настроить источник данных (DSN) для
вашей базы, используя утилиту odbcad32.exe
. В среде POSIX это же делается
путем редактирования конфигурационных файлов: /etc/odbcinst.ini
- для
настройки драйверов и ~/.odbc.ini
- для заведения пользовательских
источников данных DSN.
Замечание для пользователей Windows 64 бита: поскольку данная библиотека в
составе готовых пакетов скомпилирована в режиме 32 бита, если только вы сами
не перекомпилировали ее 64-битным компилятором, вам следует использовать
32-битную версию утилиты odbcad32.exe
: c:\windows\syswow64\odbcad32.exe
.
Ниже приведены шаги, которые помогут создать пустую тестовую БД с тестовым аккаунтом пользователя (используя SQLite3, MySQL, Postgres или Firebird), а потом создать тестовые таблицы в ней.
Примеры строк для подключения к БД SQLite3:
"sqlite+sqlite://./test1_db"
"sqlite+sqlite://c:/yborm/examples/test1_db"
"sqlite+qtsql://c:/yborm/examples/test1_db"
Этот драйвер является драйвером по умолчанию для готовых пакетов. Утилита-
оболочка sqlite3.exe
идет в составе готовых пакетов YB.ORM, см. папку bin
.
Применить сгенерированные скрипты SQL можно так:
C:\yborm\bin>sqlite3 c:\yborm\examples\test1_db < c:\yborm\examples\test_schema.sql
C:\yborm\bin>sqlite3 c:\yborm\examples\test1_db < c:\yborm\examples\ex2_schema.sql
C:\yborm\bin>sqlite3 c:\yborm\examples\test1_db < c:\yborm\examples\auth_schema.sql
Примеры строк для подключения к БД MySQL:
"mysql+odbc://test1_usr:test1_pwd@test1_dsn"
"mysql+soci://user=test1 pass=test1_pwd host=localhost service=test1_db"
"mysql+soci_odbc://DSN=test1_dsn;UID=test1_usr;PWS=test1_pwd"
"mysql+qodbc3://test1_usr:test1_pwd@test1_dsn"
"mysql+qtsql://test1_usr:[email protected]:3306/test1_db"
Вам должен быть известен пароль для пользователя root
от вашей установки
MySQL, чтобы можно было управлять базами и пользователями.
C:\MySQL\bin>mysql.exe -u root -p mysql
Enter password: ******** <-- введите сюда пароль пользователя root базы MySQL
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 361
Server version: 5.0.51b-community-nt-log MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database test1_db default charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql> create user 'test1_usr'@'localhost' identified by 'test1_pwd';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on test1_db.* to 'test1_usr'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
Применить сгенерированные скрипты SQL можно так:
C:\MySQL\bin>mysql.exe -u test1_usr -ptest1_pwd test1_db < c:\yborm\examples\test_schema.sql
C:\MySQL\bin>mysql.exe -u test1_usr -ptest1_pwd test1_db < c:\yborm\examples\ex2_schema.sql
C:\MySQL\bin>mysql.exe -u test1_usr -ptest1_pwd test1_db < c:\yborm\examples\auth_schema.sql
Примеры строк для подключения к БД Postgres:
"postgres+odbc://test1_usr:test1_pwd@test1_dsn"
"postgres+qodbc3://test1_usr:test1_pwd@test1_dsn"
"postgres+qtsql://test1_usr:[email protected]:5432/test1_db"
C:\Program Files\PostgreSQL\9.1\bin>createuser -U postgres -h 127.0.0.1 -p 5432 -D -A -P test1_usr
Enter password for new role: test1_pwd
Enter it again: test1_pwd
Shall the new role be allowed to create more new roles? (y/n) n
Password: <ваш главный пароль от Postgres>
C:\Program Files\PostgreSQL\9.1\bin>createdb -U postgres -h 127.0.0.1 -p 5432 -O test1_usr test1_db
Password: <ваш главный пароль от Postgres>
Применить сгенерированные скрипты SQL можно так:
C:\Program Files\PostgreSQL\9.1\bin>psql -h 127.0.0.1 -p 5432 -d test1_db -U test1_usr < c:\yborm\examples\test_schema.sql
Password for user test1_usr: test1_pwd
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_orm_test_pkey" for table "t_orm_test"
CREATE TABLE
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_orm_xml_pkey" for table "t_orm_xml"
CREATE TABLE
ALTER TABLE
CREATE SEQUENCE
CREATE SEQUENCE
C:\Program Files\PostgreSQL\9.1\bin>psql -h 127.0.0.1 -p 5432 -d test1_db -U test1_usr < c:\yborm\examples\ex2_schema.sql
Password for user test1_usr: test1_pwd
...
C:\Program Files\PostgreSQL\9.1\bin>psql -h 127.0.0.1 -p 5432 -d test1_db -U test1_usr < c:\yborm\examples\auth_schema.sql
Password for user test1_usr: test1_pwd
...
Примеры строк для подключения к БД Postgres (для Interbase может тоже подойти):
"interbase+odbc://test1_usr:test1_pwd@test1_dsn"
"interbase+soci://service=localhost:/var/lib/firebird/2.5/data/test1_db.fdb user=test1_usr password=test1_pwd charset=UTF8"
Пароль по умолчанию для пользователя администратора SYSDBA
: masterkey
.
C:\Program Files\Firebird\Firebird_2_5\bin>gsec -user SYSDBA -password masterkey
GSEC> add test1_usr -pw test1_pwd
Warning - maximum 8 significant bytes of password used
GSEC> quit
C:\Program Files\Firebird\Firebird_2_5\bin>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE 'localhost:c:/yborm/examples/test1_db.fdb'
CON> page_size 8192 user 'test1_usr' password 'test1_pwd';
SQL> quit;
Применить сгенерированные скрипты SQL можно так:
C:\Program Files\Firebird\Firebird_2_5\bin>isql -u test1_usr -p test1_pwd localhost:c:/yborm/examples/test1_db.fdb < c:\yborm\examples\test_schema.sql
C:\Program Files\Firebird\Firebird_2_5\bin>isql -u test1_usr -p test1_pwd localhost:c:/yborm/examples/test1_db.fdb < c:\yborm\examples\ex2_schema.sql
C:\Program Files\Firebird\Firebird_2_5\bin>isql -u test1_usr -p test1_pwd localhost:c:/yborm/examples/test1_db.fdb < c:\yborm\examples\auth_schema.sql
В среде Ubuntu Linux, использование команды gsec
- такое же, а вместо
команды isql
нужно использовать isql-fb
:
$ isql-fb
Use CONNECT or CREATE DATABASE to specify a database
SQL> CREATE DATABASE '/var/lib/firebird/2.5/data/test1_db.fdb'
CON> page_size 8192 user 'test1_usr' password 'test1_pwd';
SQL> quit;
$ isql-fb -u test1_usr -p test1_pwd \
localhost:/var/lib/firebird/2.5/data/test1_db.fdb < lib/orm/test/mk_tables.sql
$ isql-fb -u test1_usr -p test1_pwd \
localhost:/var/lib/firebird/2.5/data/test1_db.fdb < examples/domain/mk_tables.sql
$ isql-fb -u test1_usr -p test1_pwd \
localhost:/var/lib/firebird/2.5/data/test1_db.fdb < examples/auth/src/domain/auth_schema.sql