All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.koalaql.DeclareStrategy.kt Maven / Gradle / Ivy

package io.koalaql

sealed interface DeclareStrategy {
    companion object {
        val EXPECT = ReconcileTables(
            create = ReconcileMode.EXPECT,

            columns = ReconcileColumns(
                add = ReconcileMode.EXPECT,
                modify = ReconcileMode.EXPECT,
                drop = ReconcileMode.EXPECT
            ),

            indexes = ReconcileIndexes(
                add = ReconcileMode.EXPECT,
                drop = ReconcileMode.EXPECT
            ),

            drop = ReconcileMode.EXPECT
        )

        val APPLY_ALL = ReconcileTables(
            create = ReconcileMode.APPLY,

            columns = ReconcileColumns(
                add = ReconcileMode.APPLY,
                modify = ReconcileMode.APPLY,
                drop = ReconcileMode.APPLY
            ),

            indexes = ReconcileIndexes(
                add = ReconcileMode.APPLY,
                drop = ReconcileMode.APPLY
            ),

            drop = ReconcileMode.APPLY
        )

        val NO_DROP = APPLY_ALL.copy(
            columns = APPLY_ALL.columns.copy(
                drop = ReconcileMode.EXPECT
            ),
            indexes = APPLY_ALL.indexes.copy(
                drop = ReconcileMode.EXPECT
            ),
            drop = ReconcileMode.EXPECT
        )

        val CREATE_ONLY = APPLY_ALL.copy(
            columns = APPLY_ALL.columns.copy(
                modify = ReconcileMode.EXPECT,
                drop = ReconcileMode.EXPECT
            ),
            indexes = APPLY_ALL.indexes.copy(
                drop = ReconcileMode.EXPECT
            ),
            drop = ReconcileMode.EXPECT
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy