Могу ли я создать совершенно новую базу данных / схему Oracle с помощью Roundhouse?

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

Я пытаюсь использовать Roundhouse для создания / управления базой данных Oracle. Сейчас я пытаюсь приступить к работе на своем компьютере разработчика под управлением Windows 7 и VS 2010. У меня есть простой проект песочницы, где я пытаюсь создать тестовую базу данных. Я установил стандартное издание Oracle 11g на свою машину.

Первый вопрос: смогу ли я даже создать совершенно новую базу данных (база данных Oracle говорит мне, что в Oracle они называются "схемами") с использованием круглого зала? Насколько я понимаю, в отличие от SQL-сервера, нет Master база данных с sa Пользователь, который может создать любую базу данных.

Я нашел вики-страницу Oracle на сайте круглого стола, но там говорится только об изменении существующей базы данных Oracle, а не о создании новой. У меня возникают проблемы с поиском примеров, когда в Oracle была создана новая база данных с использованием круглого дома до создания необходимых таблиц, хранимых процедур и т. Д.

Если это возможно, что мне нужно сделать / настроить? Как мне настроить файл конфигурации? Дано мой текущий файл конфигурации.

<?xml version="1.0" encoding="utf-8" ?>
<Project DefaultTargets="DBDeploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- Visit http://roundhouse.googlecode.com/ for details -->

  <UsingTask AssemblyFile="roundhouse.tasks.dll" TaskName="roundhouse.tasks.Roundhouse" />

  <PropertyGroup>
    <DBServer>dev-mac-303.qtest.local</DBServer>
    <DBName>RoundhouseSandbox.OracleRoundhouse</DBName>
    <Environment>DEV</Environment>
    <DBConnectionString>Data Source=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dev-mac-303.qtest.local)(PORT = 1521)))(CONNECT_DATA = (SID = DEVEL)));User Id=mytest;Password=mytestdevel;Persist Security Info=false;</DBConnectionString>
  </PropertyGroup>


  <Target Name="ApplyDatabaseChanges">
    <Roundhouse
        ServerName="$(DBServer)"
        DatabaseName="$(DBName)"
        ConnectionString="$(DBConnectionString)"
        ConnectionStringAdmin="$(DBConnectionString)"
        CommandTimeout="60"
        CommandTimeoutAdmin="300"
        VersionFile="OracleRoundhouse.dll"
        AlterDatabaseFolderName="alterDatabase"
        UpFolderName="mytest\updates"
        RunFirstAfterUpFolderName="mytest\runFirstAfterUp"
        FunctionsFolderName="mytest\functions"
        ViewsFolderName="mytest\views"
        SprocsFolderName="mytest\storedprocedures"
        IndexesFolderName="mytest\indexes"
        PermissionsFolderName="mytest\permissions"
        SchemaName="Change"
        VersionTableName="Version"
        ScriptsRunTableName="ScriptsRun"
        ScriptsRunErrorsTableName="ScriptsRunErrors"
        EnvironmentName="$(Environment)"
        DoNotCreateDatabase="false"
        OutputPath="C:\temp\test.mytest.Database\ChangeTracking\"
        WarnOnOneTimeScriptChanges="false"
        Silent="true"
        DatabaseType="roundhouse.databases.oracle.OracleDatabase, roundhouse.databases.oracle"
        WithTransaction="false"
        RunAllAnyTimeScripts="false"
        DisableTokenReplacement="false"
        Debug="true"
        />
  </Target>

  <Target Name = "DBDeploy"
          DependsOnTargets="
        ApplyDatabaseChanges;
      "
     >
  </Target>

</Project>

2 ответа

Решение

Глядя на то, откуда вы пришли, возможно, пришло время для обновления.

Из того, что я помню о поддержке Oracle и RH, это может быть возможно. Существует переключатель для строки подключения администрирования - CSA (строка подключения admin), которая будет обрабатывать создание схемы для вас. И да, у Oracle другой язык (база данных такая же, как у сервера sql server, схема - это база данных sql server).

Прошло некоторое время с тех пор, как я проверил поддержку Oracle, но если вы посмотрите, вы можете найти больше информации.

Я сделал Oracle с RoundhousE для приложения, которое сейчас находится в производстве.

RoundhousE не подходит для создания базы данных Oracle из ничего. Базы данных Oracle, которые я видел, используют схему в качестве основного логического подразделения; другими словами, в Oracle вы будете использовать схемы почти так же, как и базы данных в SQL Server. Кроме того, сама база данных, как правило, уже настроена, и вы не создаете новые базы данных. Это больше похоже на этап установки; Вы не можете даже сформировать сетевое соединение, пока база данных не настроена. Грубо говоря:

SQL Server      |  Oracle                             
----------------+------------------------------------
Server install  |  Server install & database set up
Database        |  Schema

Так что не устанавливайте RoundhousE базу данных Oracle. Предположим, что это уже сделано; думать об этом как о шаге установки. Вы не ожидаете, что RoundhousE установит SQL Server или настроит его.

Тем не менее, RoundhousE имеет возможность для указания сценария создания. Возможно, вы сможете использовать это для создания своей схемы, но у RoundhousE еще нет возможности указать сценарий удаления (насколько мне известно). Вам понадобится отдельный инструмент для этого.

В итоге я использовал SQL*Plus Instant Client для управления созданием и удалением схем в моих сценариях сборки: http://www.oracle.com/technetwork/topics/winsoft-085727.html. Вам понадобится instantclient-sqlplus-nt-11.2.0.3.0.zip и один из Instantclient-basiclite-nt-11.2.0.3.0.zip или instantclient-basic-nt-11.2.0.3.0.zip. (Более новые версии подходят; просто убедитесь, что вы получаете соответствующие версии.) Разархивируйте их в тот же каталог. (В дополнение к этому вы можете использовать basic-nt или basiclite-nt вместо установки Oracle Client; вам просто нужно убедиться, что ваше приложение может найти библиотеки DLL.) Вам нужно будет выполнить вызовы командной строки, чтобы это работало, Когда RoundhousE получит сценарии удаления, я собираюсь выбросить это, если смогу.

Как только у вас есть схема, RoundhousE работает довольно хорошо. Проверьте списки ошибок на Github и Google Code. Есть несколько странных проблем. Однако, как только вы обойдете их, оно того стоит. Я написал большинство сценариев построения развертывания базы данных почти 2 года назад, и они являются одной из тех вещей, которые выдержали испытание временем в проекте. Они написаны на PowerShell, поэтому я не знаю, как это будет в MSBuild.

Обновить:

За годы, прошедшие с тех пор, как я написал это, Flyway стал популярным. Подумайте об использовании этого или других инструментов, поскольку они могут иметь превосходную поддержку Oracle. RoundhousE не исправил много проблем, которые были выявлены несколько лет назад. Кажется, в первую очередь сосредоточены на поддержке SQL Server.

Другие вопросы по тегам