public class DatabaseUpdater extends Object
Modifier and Type | Class and Description |
---|---|
static interface |
DatabaseUpdater.ChangeSetExecutorCallback
Interface used for callbacks when updating the database.
|
static class |
DatabaseUpdater.OpenMRSChangeSet
Represents each change in the liquibase-update-to-latest
|
Modifier and Type | Field and Description |
---|---|
static String |
DATABASE_UPDATES_LOG_FILE |
Constructor and Description |
---|
DatabaseUpdater() |
Modifier and Type | Method and Description |
---|---|
static Boolean |
allowAutoUpdate()
Indicates whether automatic database updates are allowed by this server.
|
static void |
executeChangelog()
Convenience method to run the changesets using Liquibase to bring the database up to a
version compatible with the code
|
static void |
executeChangelog(String changelog,
Map<String,Object> userInput)
Run changesets on database using Liquibase to get the database up to the most recent version
|
static List<String> |
executeChangelog(String changelog,
Map<String,Object> userInput,
DatabaseUpdater.ChangeSetExecutorCallback callback)
Executes the given changelog file.
|
static List<String> |
executeChangelog(String changeLogFile,
String contexts,
Map<String,Object> userInput,
DatabaseUpdater.ChangeSetExecutorCallback callback)
|
static List<String> |
executeChangelog(String changeLogFile,
String contexts,
Map<String,Object> userInput,
DatabaseUpdater.ChangeSetExecutorCallback callback,
ClassLoader cl)
This code was borrowed from the liquibase jar so that we can call the given callback
function.
|
static Integer |
getAuthenticatedUserId() |
static Connection |
getConnection()
Gets a database connection for liquibase to do the updates
|
static List<DatabaseUpdater.OpenMRSChangeSet> |
getDatabaseChanges()
Looks at the current liquibase-update-to-latest.xml file and then checks the database to see
if they have been run.
|
static List<DatabaseUpdater.OpenMRSChangeSet> |
getUnrunDatabaseChanges()
Looks at the current liquibase-update-to-latest.xml file returns all changesets in that file
that have not been run on the database yet.
|
static void |
reportUpdateWarnings(List<String> warnings)
This method is called by an executing custom changeset to register warning messages.
|
static void |
setAuthenticatedUserId(Integer userId) |
static boolean |
updatesRequired()
Ask Liquibase if it needs to do any updates
|
static void |
writeUpdateMessagesToFile(String text)
This method writes the given text to the database updates log file located in the application
data directory.
|
public static final String DATABASE_UPDATES_LOG_FILE
public static void executeChangelog() throws DatabaseUpdateException, InputRequiredException
InputRequiredException
- if the changelog file requirest some sort of user input. The
error object will list of the user prompts and type of data for each promptDatabaseUpdateException
#update(Map)
,
executeChangelog(String, Map)
public static void executeChangelog(String changelog, Map<String,Object> userInput) throws DatabaseUpdateException, InputRequiredException
changelog
- the liquibase changelog file to use (or null to use the default file)userInput
- nullable map from question to user answer. Used if a call to update(null)
threw an InputRequiredException
DatabaseUpdateException
InputRequiredException
public static List<String> executeChangelog(String changelog, Map<String,Object> userInput, DatabaseUpdater.ChangeSetExecutorCallback callback) throws DatabaseUpdateException, InputRequiredException
CHANGE_LOG_FILE
is ran.changelog
- The string filename of a liquibase changelog xml file to runuserInput
- nullable map from question to user answer. Used if a call to
executeChangelog(InputRequiredException
InputRequiredException
- if the changelog file requirest some sort of user input. The
error object will list of the user prompts and type of data for each promptDatabaseUpdateException
@Deprecated public static List<String> executeChangelog(String changeLogFile, String contexts, Map<String,Object> userInput, DatabaseUpdater.ChangeSetExecutorCallback callback) throws Exception
Exception
public static List<String> executeChangelog(String changeLogFile, String contexts, Map<String,Object> userInput, DatabaseUpdater.ChangeSetExecutorCallback callback, ClassLoader cl) throws Exception
changeLogFile
- the file to executecontexts
- the liquibase changeset contextuserInput
- answers given by the usercallback
- the function to call after every changesetcl
- ClassLoader
to use to find the changeLogFile (or null to use
OpenmrsClassLoader
)Exception
public static boolean updatesRequired() throws Exception
Exception
public static Boolean allowAutoUpdate()
public static Connection getConnection() throws Exception
Exception
@Authorized(value="View Database Changes") public static List<DatabaseUpdater.OpenMRSChangeSet> getDatabaseChanges() throws Exception
Exception
@Authorized(value="View Database Changes") public static List<DatabaseUpdater.OpenMRSChangeSet> getUnrunDatabaseChanges() throws Exception
Exception
public static Integer getAuthenticatedUserId()
public static void setAuthenticatedUserId(Integer userId)
authenticatedUserId
- the authenticatedUserId to setpublic static void reportUpdateWarnings(List<String> warnings)
warnings
- list of warnings to append to the end of the current listpublic static void writeUpdateMessagesToFile(String text)
the
- text to be written to the fileCopyright © 2018 OpenMRS LLC.. All Rights Reserved.