50 lines
2.1 KiB
Text
50 lines
2.1 KiB
Text
|
[[_migrate_db]]
|
||
|
|
||
|
== Database migration
|
||
|
|
||
|
{project_name} can automatically migrate the database schema, or you can choose to do it manually. By default the
|
||
|
database is automatically migrated when you start the new installation for the first time.
|
||
|
|
||
|
=== Automatic relational database migration
|
||
|
|
||
|
To enable automatic upgrading of the database schema, set the migration-strategy property value to "update" for the
|
||
|
default connections-jpa provider:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
kc.[sh|bat] start --spi-connections-jpa-default-migration-strategy=update
|
||
|
----
|
||
|
|
||
|
When you start the server with this setting your database is automatically migrated if the database schema has changed
|
||
|
in the new version.
|
||
|
|
||
|
Creating an index on huge tables with millions of records can easily take a huge amount of time
|
||
|
and potentially cause major service disruption on upgrades.
|
||
|
For those cases, we added a threshold (the number of records) for automated index creation.
|
||
|
By default, this threshold is `300000` records.
|
||
|
When the number of records is higher than the threshold, the index is not created automatically,
|
||
|
and there will be a warning message in server logs including SQL commands which can be applied later manually.
|
||
|
|
||
|
To change the threshold, set the `index-creation-threshold` property, value for the default `connections-liquibase` provider:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
kc.[sh|bat] start --spi-connections-liquibase-default-index-creation-threshold=300000
|
||
|
----
|
||
|
|
||
|
=== Manual relational database migration
|
||
|
|
||
|
To enable manual upgrading of the database schema, set the migration-strategy property value to "manual" for the default
|
||
|
connections-jpa provider:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
kc.[sh|bat] start --spi-connections-jpa-default-migration-strategy=manual
|
||
|
----
|
||
|
|
||
|
When you start the server with this configuration it checks if the database needs to be migrated. The required changes
|
||
|
are written to an SQL file that you can review and manually run against the database. For further details on how to
|
||
|
apply this file to the database, see the documentation for the relational database you're using. After the changes have
|
||
|
been written to the file, the server exits.
|
||
|
|