-
Notifications
You must be signed in to change notification settings - Fork 245
Oracle
RoundhousE integrates with Oracle.
##Prerequisites To be able to run RH with Oracle, the additional prerequisite of having oracle client tools installed is required.
Put a ; on a single line where you want to split and it will work.
The following ; would cause a batch split:
CREATE TABLE Timmy
(
ID Number(19,0) NOT NULL
,dude varchar(50) NULL
)
;
ALTER TABLE Timmy ADD (PRIMARY KEY(id))
None of the following statement is split:
begin
Insert into Table (column1,column2) values (value1,value2);
Insert into Table (column1,column2) values (value1,value2);
Insert into Table (column1,column2) values (value1,value2);
Insert into Table (column1,column2) values (value1,value2);
end;
We did not get Oracle working correctly over Windows Authentication yet. But you can use tnsless connections to provide to RoundhousE.
###ConnectionString example
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=_SERVERNAME_)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=_SERVICENAME_)));User Id=_DatabaseName_;Password=_DatabaseName_;Persist Security Info=false
If one experiences problems with this approach, you may consider adding Pooling=False;
to the connection string, but be aware of the performance considerations when using this setting.
###Auto Commit DDL Oracle has the behavior of implicitly committing transactions before and after executing DDL statements.
For more info: Oracle 9i SQL versus Standard SQL
So if you try to execute roundhouse with transaction support against an Oracle db, RH will tell this is not supported.
###RoundhousE_ScriptsRunError is very usefull on Oracle RoundhousE will throw an error on the script that fails. And because Oracle migrations can't happen in a transaction, all previous scripts are executed and logged into the table Roundhouse_ScriptsRun. The last record in this table is the last succesfull executed script. The faling script, eventually split up in multiple parts by ; is logged in the RoundhousE_ScriptsRunError table. The column erroneous_part_of_script contains the failing part. So you know what was executed and what wasn't to fix the issue.
Our advice is to test your migrations in your builds and multiple environments to avoid this.