首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能用roundhouse创建一个全新的oracle db/schema吗?

我能用roundhouse创建一个全新的oracle db/schema吗?
EN

Stack Overflow用户
提问于 2013-03-18 12:13:25
回答 2查看 1.1K关注 0票数 2

我对Oracle还是个新手,主要使用过SQL,所以我对oracle的工作原理以及要使用的用户/连接字符串的一些理解可能是错误的,或者根本不存在。

我正在尝试使用roundhouse来创建/管理Oracle数据库。现在,我正试着在我的开发机器上工作,运行Windows7和VS2010。我有一个简单的沙箱项目,我正在尝试创建一个测试数据库。我已经在我的机器上安装了Oracle 11g标准版。

第一个问题是,我是否能够使用roundhouse创建一个全新的数据库( Oracle数据库告诉我它们在Oracle中被称为'Schemas‘)?据我所知,与SQL server不同的是,没有可以创建任何数据库的sa用户的Master数据库。

我在roundhouse网站上找到了Oracle的wiki页面,但它只讨论了修改现有的Oracle数据库,而不是创建新的数据库。我很难找到这样的例子,在创建所需的表、存储的过程等之前,使用roundhouse在Oracle中创建了一个全新的数据库。

如果可能,我需要做什么/设置?我应该如何设置我的配置文件?给定的是我当前的配置文件。

代码语言:javascript
复制
<?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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-19 10:14:42

看看你来自哪里,可能是升级的时候了。

根据我对Oracle和RH支持的记忆,这可能是可能的。有一个用于管理连接字符串的开关- CSA (连接字符串admin),它将为您处理模式创建。是的,Oracle有不同的行话(数据库与sql server的服务器相同,模式是sql server的数据库)。

自从我检查了对Oracle的支持已经有一段时间了,但是如果你看一下,你可能会发现更多的信息。

票数 1
EN

Stack Overflow用户

发布于 2013-07-02 06:26:46

我用RoundhousE在一个现已投入生产的应用程序上运行过Oracle。

RoundhousE不适合从无到有创建Oracle数据库。我所见过的Oracle数据库使用模式作为主要的逻辑部分;换句话说,在Oracle中,您使用模式的方式与在SQL Server中使用数据库的方式基本相同。此外,数据库本身通常已经设置好了,您不需要创建新的数据库。这更像是一个安装步骤;在设置数据库之前,您甚至不能形成网络连接。粗略地说:

代码语言:javascript
复制
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.zipinstantclient-basiclite-nt-11.2.0.3.0.zipinstantclient-basic-nt-11.2.0.3.0.zip.中的一个(较新的版本也可以;只需确保获得匹配的版本即可。)将它们解压缩到相同的目录。(顺便说一句,您可以使用basic-nt或basiclite-nt来代替安装Oracle客户机;您只需要确保您的应用程序可以找到DLL。)您需要进行命令行调用才能使其正常工作。当RoundhousE获得drop脚本时,我打算尽可能地将其转储。

一旦你有了一个合适的模式,RoundhousE就能很好地工作。不过,一定要检查一下Github和Google Code上的bug列表。有一些奇怪的问题。不过,一旦你克服了这些障碍,你所付出的一切努力都是值得的。我几乎在两年前编写了大多数数据库部署构建脚本,它们是在项目中经受住了时间考验的东西之一。它们是用PowerShell编写的,所以我不知道这在MSBuild中会怎么样。

更新:

在我写这篇文章后的几年里,Flyway变得流行起来。考虑使用它或其他工具,因为它们可能具有对Oracle的高级支持。RoundhousE还没有修复很多几年前就发现的问题。它似乎主要专注于支持SQL Server。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15469634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档