public class ResourceDatabasePopulator extends Object implements DatabasePopulator
addScript(org.springframework.core.io.Resource)
to add a single SQL script location.
addScripts(org.springframework.core.io.Resource...)
to add multiple SQL script locations.
populate(io.r2dbc.spi.Connection)
to initialize or clean up the database using the configured scripts.
ScriptUtils
Constructor and Description |
---|
ResourceDatabasePopulator()
Create a new
ResourceDatabasePopulator with default settings. |
ResourceDatabasePopulator(boolean continueOnError,
boolean ignoreFailedDrops,
String sqlScriptEncoding,
Resource... scripts)
Construct a new
ResourceDatabasePopulator with the supplied values. |
ResourceDatabasePopulator(Resource... scripts)
Create a new
ResourceDatabasePopulator with default settings for the supplied scripts. |
Modifier and Type | Method and Description |
---|---|
void |
addScript(Resource script)
Add a script to execute to initialize or clean up the database.
|
void |
addScripts(Resource... scripts)
Add multiple scripts to execute to initialize or clean up the database.
|
reactor.core.publisher.Mono<Void> |
populate(io.r2dbc.spi.Connection connection)
Populate, initialize, or clean up the database using the
provided R2DBC
Connection . |
void |
setBlockCommentEndDelimiter(String blockCommentEndDelimiter)
Set the end delimiter that identifies block comments within the SQL
scripts.
|
void |
setBlockCommentStartDelimiter(String blockCommentStartDelimiter)
Set the start delimiter that identifies block comments within the SQL
scripts.
|
void |
setCommentPrefix(String commentPrefix)
Set the prefix that identifies single-line comments within the SQL scripts.
|
void |
setCommentPrefixes(String... commentPrefixes)
Set the prefixes that identify single-line comments within the SQL scripts.
|
void |
setContinueOnError(boolean continueOnError)
Flag to indicate that all failures in SQL should be logged but not cause a failure.
|
void |
setDataBufferFactory(DataBufferFactory dataBufferFactory)
Set the
DataBufferFactory to use for Resource loading. |
void |
setIgnoreFailedDrops(boolean ignoreFailedDrops)
Flag to indicate that a failed SQL
DROP statement can be ignored. |
void |
setScripts(Resource... scripts)
Set the scripts to execute to initialize or clean up the database,
replacing any previously added scripts.
|
void |
setSeparator(String separator)
Specify the statement separator, if a custom one.
|
void |
setSqlScriptEncoding(Charset sqlScriptEncoding)
Specify the encoding for the configured SQL scripts,
if different from the platform encoding.
|
void |
setSqlScriptEncoding(String sqlScriptEncoding)
Specify the encoding for the configured SQL scripts,
if different from the platform encoding.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
populate
public ResourceDatabasePopulator()
ResourceDatabasePopulator
with default settings.public ResourceDatabasePopulator(Resource... scripts)
ResourceDatabasePopulator
with default settings for the supplied scripts.scripts
- the scripts to execute to initialize or clean up the database (never null
)public ResourceDatabasePopulator(boolean continueOnError, boolean ignoreFailedDrops, @Nullable String sqlScriptEncoding, Resource... scripts)
ResourceDatabasePopulator
with the supplied values.continueOnError
- flag to indicate that all failures in SQL should be
logged but not cause a failureignoreFailedDrops
- flag to indicate that a failed SQL DROP
statement can be ignoredsqlScriptEncoding
- the encoding for the supplied SQL scripts
(may be null
or empty to indicate platform encoding)scripts
- the scripts to execute to initialize or clean up the database
(never null
)public void addScript(Resource script)
script
- the path to an SQL script (never null
)public void addScripts(Resource... scripts)
scripts
- the scripts to execute (never null
)public void setScripts(Resource... scripts)
scripts
- the scripts to execute (never null
)public void setSqlScriptEncoding(@Nullable String sqlScriptEncoding)
sqlScriptEncoding
- the encoding used in scripts
(may be null
or empty to indicate platform encoding)addScript(Resource)
public void setSqlScriptEncoding(@Nullable Charset sqlScriptEncoding)
sqlScriptEncoding
- the encoding used in scripts
(may be null
or empty to indicate platform encoding)addScript(Resource)
public void setSeparator(String separator)
Defaults to ";"
if not specified and falls back to "\n"
as a last resort; may be set to ScriptUtils.EOF_STATEMENT_SEPARATOR
to signal that each script contains a single statement without a separator.
separator
- the script statement separatorpublic void setCommentPrefix(String commentPrefix)
Defaults to "--"
.
commentPrefix
- the prefix for single-line commentssetCommentPrefixes(String...)
public void setCommentPrefixes(String... commentPrefixes)
Defaults to ["--"]
.
commentPrefixes
- the prefixes for single-line commentspublic void setBlockCommentStartDelimiter(String blockCommentStartDelimiter)
Defaults to "/*"
.
blockCommentStartDelimiter
- the start delimiter for block comments
(never null
or empty)setBlockCommentEndDelimiter(java.lang.String)
public void setBlockCommentEndDelimiter(String blockCommentEndDelimiter)
Defaults to "*/"
.
blockCommentEndDelimiter
- the end delimiter for block comments
(never null
or empty)setBlockCommentStartDelimiter(java.lang.String)
public void setContinueOnError(boolean continueOnError)
Defaults to false
.
continueOnError
- true
if script execution should continue on errorpublic void setIgnoreFailedDrops(boolean ignoreFailedDrops)
DROP
statement can be ignored.
This is useful for a non-embedded database whose SQL dialect does not
support an IF EXISTS
clause in a DROP
statement.
The default is false
so that if the populator runs accidentally, it will
fail fast if a script starts with a DROP
statement.
ignoreFailedDrops
- true
if failed drop statements should be ignoredpublic void setDataBufferFactory(DataBufferFactory dataBufferFactory)
dataBufferFactory
- the DataBufferFactory
to use, must not be null
public reactor.core.publisher.Mono<Void> populate(io.r2dbc.spi.Connection connection) throws ScriptException
DatabasePopulator
Connection
.populate
in interface DatabasePopulator
connection
- the R2DBC connection to use to populate the db;
already configured and ready to use, must not be null
Mono
that initiates script execution and is
notified upon completionScriptException
- in all other error cases