Table of Contents |
---|
...
No Format | ||
---|---|---|
| ||
<sql_code_dir> # for example, sql_scripts
archive
data_dml
ddl
ddl_direct
function
package
packagebody
procedure
sql_direct
ssis
ssis_project
trigger
view |
Script Directories
SCM Directory Name | Description | ||
---|---|---|---|
<sql_code_dir> | User-defined directory in SCM to use as the root for SQL scripts. Subdirectories are provided for different types of SQL. Example: | ||
archive | The archive directory is created and managed by the Deployment Packager. Files added in the ddl, sql, sqlplus, sql_direct, and data_dml directories will be copied here after successful Packaging to prevent post Packaging modification. The user does not need to create this directory. | ||
data_dml | Contains scripts that load, manipulate or delete data. | ||
ddl | Contains scripts that make ddl changes such as creating, modifying, and dropping tables, indexes, sequences, and other database objects that are not one of the other types. | ||
ddl_direct | The scripts are run directly using the database's native client. The changesets are database-specific. They cannot be deployed to other database platforms.
The ddl_direct folder is available with 7.15 and higher. | ||
function | Contains scripts that create or replace one function. | ||
package | Contains scripts that create or replace one package definition. | ||
packagebody | Contains scripts that create new or replace existing package bodies. | ||
procedure | Contains scripts that create or replace one procedure. | ||
sql | Limited Use. Creates a It's strongly suggested to use | ||
sqlplus | Deprecated. Use | ||
sql_direct | The scripts are run directly using the database's native client. The changesets are database-specific. They cannot be deployed to other database platforms.
| ||
ssis | Contains .dtsx files (SSIS Package) and other support files used in ETL processes. | ||
ssis_project | Contains .ispac files (SSIS Project) | ||
trigger | Contains SQL scripts that create or replace one trigger. | ||
view | Contains SQL scripts that create or replace one view. |
...
Object Type | Notes | |||||
---|---|---|---|---|---|---|
Databases and Schema |
| |||||
Inserts, Updates and Deletes (DML) | Place DML scripts into the | |||||
Procedures, Packages, Functions, Views and Triggers (Stored Logic) | Objects are managed as non-transient/rerunnable changes by default in the stored logic folders. Scripts remain in their folders after packaging. They are not moved to the archive directory. This behavior supports managing database changes like application source code: the same code is updated in place as changes are needed. By (By contrast, once after DDL changes are made , the script is moved to the archive directory.) When the changes are committed, Datical repackages the file and increments the version (the versioning feature was available as of Datical DB 4.31). of the change set (datical:version). See Changeset Versioning: version and versionStrategy. For stored logic scripts, create objects using only use the CREATE command (such as "CREATE PROCEDURE"). When you update and deploy the file again, Datical automatically converts the CREATE to an ALTER as needed. (Do not use "CREATE OR REPLACE" or "CREATE OR ALTER".) Permissions are maintained on the object when deployed.
| |||||
Complex and Interdependent Database Changes | Normally DDL changes are placed in the / However, when you need to package complex and interdependent changes, place them in the If the order that the multiple statements are listed in the single script is critical to the success of the script, then put it in the Examples of sets of statements in a single sql script that need to be placed into
| |||||
Rename any object | Place SQL scripts into the /sql or /sql_direct folder. When you do, they are processed as a rename operation (rather than a DROP and CREATE). | |||||
Using Changelog Properties | All sql scripts can take advantage of properties. Property key/value pairs are set directly in the changelog. See /wiki/spaces/DDOC59/pages/795771617. |
...
Process Type | Processing | Directories |
---|---|---|
Transient |
| ddl ddl_direct sql_direct data_dml |
Non-transient |
| all other directories |
...
Process Type | Processing | Directories |
---|---|---|
Convert SQL |
| ddl folder (CONVERT packaging method) |
Native SQL |
| ddl_direct, data_dml, and sql_direct folders (DDL_DIRECT, DATA_DML, and DIRECT packaging methods) |
Stored Logic |
| function, package, packagebody, procedure, trigger, and view folders (STOREDLOGIC packaging method) |
SQLFILE |
| sql folder (SQLFILE packaging method) |
...
- Tier 1: Commit Sequence
- The group of files in a single commit is processed as a unit. Within a commit, files are processed within the file type sequence and then within the filename sequence.
- Groups of commits are processed in order of checkin time. The earliest commit is processed first, then the next, and so on.
- If you commit a file as part of a group and then later commit it again with changes (with a group), it is processed with the later initial commit group.
- Tier 2: File Type Sequence
- ddl
- ddl_direct (available in 7.15 and higher)
- view
- ssis/ssis_project
- function
- procedure
- package
- packagebody
- trigger
- sql
- sqlplus (deprecated)
- sql_direct
- data_dml
- Tier 3: Filename Sequence
If multiple files are included in the same commit, and in the same directory, then files will be executed in alphabetical filename order
...
See also these pages for an overview of packager workflows, guidelines for writing scripts, and when to use which folder or packaging method:
Writing SQL Scripts for Datical DBLiquibase Enterprise
Oracle Database Objects and Packaging
...