partiql
partiql
is a Change Type in the Liquibase DynamoDB Pro extension that allows you to specify some PartiQL statements in your changesets. In DynamoDB changesets, use partiql
instead of sql
. For more information, see PartiQL - a SQL-compatible query language for Amazon DynamoDB.
Uses
partiql
is useful for complex changes that are not supported through Liquibase automated Change Types such as stored procedures. The PartiQL contained in partiql
can be multi-line.
Run partiql
To run this Change Type, follow these steps:
Add the Change Type to your changeset, as shown in the examples on this page.
Specify any required attributes. Use the table on this page to see which ones your database requires.
Deploy your changeset by running the
update
command:liquibase update
Now, Liquibase deploys your change to your DynamoDB database. By default, read operations on DynamoDB are eventually consistent. When you look at your database immediately after running liquibase update
, DynamoDB may display the status of an object as CREATING
, UPDATING
, or DELETING
. When it finishes, it displays the status as ACTIVE
.
Note: If your deployment fails because the DynamoDB waiter times out or reaches a retry limit, you can modify the waiter settings using Liquibase Parameters for Amazon DynamoDB Pro.
Available attributes
Name | Type | Description | Requirement |
| String | Specifies the PartiQL to execute. | Required |
| String | Specifies which database type(s)a changeset is to be used for. See valid database type names on Note: Liquibase currently only supports PartiQL on DynamoDB. If you use PartiQL on other databases, your changes may result in unexpected behavior. | Optional |
String | Specifies delimiter to apply to the end of the statement. Your delimiter string can be a combination of one or more letters, symbols, and/or numbers, or the empty string ( Tip: It is a best practice not to use | Optional | |
| Boolean | If required, Liquibase will automatically add Example: If the generated SQL has multiple SQL statements, then Liquibase adds Tip: It is best practice not to use | Optional |
| Boolean | When | Optional |
partiql examples
databaseChangeLog:
- changeSet:
id: 2
author: your.name
comment: partiql with splitStatements and endDelimiter test
changes:
- partiql:
splitStatements: true
endDelimiter: '@@'
partiql: 'INSERT INTO MusicPartiqlTestYAML value {''Artist'' : ''3 Doors Down'',''SongTitle'' : ''Kryptonite''}@@ INSERT INTO MusicPartiqlTestYAML value {''Artist'' : ''Mike Oldfield'',''SongTitle'' : ''Man in the Rain''}'
- rollback:
partiql:
splitStatements: true
endDelimiter: '@@'
partiql: DELETE FROM MusicPartiqlTestYAML WHERE Artist='3 Doors Down' AND SongTitle='Kryptonite'@@ DELETE FROM MusicPartiqlTestYAML WHERE Artist='Mike Oldfield' AND SongTitle='Man in the Rain'