diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/module/UpgradeModuleScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/module/UpgradeModuleScope.kt index 1d1ee58..936e6cb 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/module/UpgradeModuleScope.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/module/UpgradeModuleScope.kt @@ -2,7 +2,6 @@ package ru.landgrafhomyak.db.serdha0.api.module import ru.landgrafhomyak.db.serdha0.api.table.Table import ru.landgrafhomyak.db.serdha0.api.table.TableConstructor -import ru.landgrafhomyak.db.serdha0.api.table.UpdateTableScope /** * Scope methods for upgrading [module template][ModuleTemplate]. @@ -39,7 +38,7 @@ public interface UpgradeModuleScope : CreateModuleScope { * @see UpgradeModuleScope.upgradeAndRenameTable * @see UpgradeModuleScope.CreateTable */ - public fun upgradeTable(oldTable: Table, upgrader: UpdateTableScope): tnUE + public fun upgradeTable(oldTable: Table, upgrade: TableUpgrade): tnUE } diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableConstructor.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableConstructor.kt index 1712034..82f92a0 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableConstructor.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableConstructor.kt @@ -5,8 +5,8 @@ import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType import ru.landgrafhomyak.db.serdha0.api.misc.RowExpression -public interface TableConstructor { - public fun createTable(context: Scope): TableUserExtension +public interface TableConstructor { + public fun createTable(context: Scope): tUE public interface Scope { diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableUpgrade.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableUpgrade.kt new file mode 100644 index 0000000..88d1c88 --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/TableUpgrade.kt @@ -0,0 +1,70 @@ +package ru.landgrafhomyak.db.serdha0.api.table + +import ru.landgrafhomyak.db.serdha0.api.misc.Column +import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType + + +public interface TableUpgrade { + public fun upgradeTable(context: Scope): tnUE + + public interface Scope : TableConstructor.Scope { + public fun > keepColumn(c: Column): Column + public fun > keepColumnUntilUpgraded(c: Column): Column + public fun > renameAndKeepColumn(c: Column, newName: String): Column + public fun deleteColumn(c: Column<*, *, toUE>) + + public fun keepIndex(i: Index): Index + public fun renameAndKeepIndex(i: Index, newName: String): Index + public fun deleteIndex(i: Index) + + public fun keepCheck(i: CheckConstraint): CheckConstraint + public fun renameAndKeepCheck(i: CheckConstraint, newName: String): CheckConstraint + public fun deleteCheck(i: CheckConstraint) + + public fun keepUniqueIndex(i: UniqueIndex): UniqueIndex + public fun renameAndKeepUniqueIndex(i: UniqueIndex, newName: String): UniqueIndex + public fun deleteUniqueIndex(i: UniqueIndex) + + public fun > keepDefaultValue(c: Column, d: ColumnDefaultValue): ColumnDefaultValue + public fun > changeDefaultValue(c: Column, d: ColumnDefaultValue): ColumnDefaultValue + public fun deleteDefaultValue(i: ColumnDefaultValue) + + public fun > keepForeignRowReference( + frr: ForeignRowReference, + onDelete: ForeignRowReference.OnDelete? = null + ): ForeignRowReference + + public fun , ttnUE : Any, nRT, nDT : DatabaseType> keepForeignRowReferenceToUpdatedTable( + frr: ForeignRowReference, + updatedType: nDT, + updatedTable: Table, + onDelete: ForeignRowReference.OnDelete? = null + ): ForeignRowReference + + public fun > renameAndKeepForeignRowReference( + frr: ForeignRowReference, + onDelete: ForeignRowReference.OnDelete? = null + ): ForeignRowReference + + public fun , ttnUE : Any, nRT, nDT : DatabaseType> renameAndKeepForeignRowReferenceToUpdatedTable( + frr: ForeignRowReference, + updatedType: nDT, + updatedTable: Table, + onDelete: ForeignRowReference.OnDelete? = null + ): ForeignRowReference + + public fun deleteForeignRowReference(frr: ForeignRowReference) + + public fun > keepForeignRowReferenceUntilUpgraded( + frr: ForeignRowReference, + onDelete: ForeignRowReference.OnDelete? = null + ): ForeignRowReference + + public fun , ttnUE : Any, nRT, nDT : DatabaseType> keepForeignRowReferenceToUpdatedTableUntilUpgraded( + frr: ForeignRowReference, + updatedType: nDT, + updatedTable: Table, + onDelete: ForeignRowReference.OnDelete? = null + ): ForeignRowReference + } +} \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/UpdateTableScope.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/UpdateTableScope.kt deleted file mode 100644 index 1e06851..0000000 --- a/src/commonMain/kotlin/ru/landgrafhomyak/db/serdha0/api/table/UpdateTableScope.kt +++ /dev/null @@ -1,67 +0,0 @@ -package ru.landgrafhomyak.db.serdha0.api.table - -import ru.landgrafhomyak.db.serdha0.api.misc.Column -import ru.landgrafhomyak.db.serdha0.api.misc.DatabaseType - - -public interface UpdateTableScope : TableConstructor.Scope { - public fun > keepColumn(c: Column): Column - public fun > keepColumnUntilUpgraded(c: Column): Column - public fun > renameAndKeepColumn(c: Column, newName: String): Column - public fun deleteColumn(c: Column<*, *, toUE>) - - public fun keepIndex(i: Index): Index - public fun renameAndKeepIndex(i: Index, newName: String): Index - public fun deleteIndex(i: Index) - - public fun keepCheck(i: CheckConstraint): CheckConstraint - public fun renameAndKeepCheck(i: CheckConstraint, newName: String): CheckConstraint - public fun deleteCheck(i: CheckConstraint) - - public fun keepUniqueIndex(i: UniqueIndex): UniqueIndex - public fun renameAndKeepUniqueIndex(i: UniqueIndex, newName: String): UniqueIndex - public fun deleteUniqueIndex(i: UniqueIndex) - - public fun > keepDefaultValue(c: Column, d: ColumnDefaultValue): ColumnDefaultValue - public fun > changeDefaultValue(c: Column, d: ColumnDefaultValue): ColumnDefaultValue - public fun deleteDefaultValue(i: ColumnDefaultValue) - - public fun > keepForeignRowReference( - frr: ForeignRowReference, - onDelete: ForeignRowReference.OnDelete? = null - ): ForeignRowReference - - public fun , ttnUE : Any, nRT, nDT : DatabaseType> keepForeignRowReferenceToUpdatedTable( - frr: ForeignRowReference, - updatedType: nDT, - updatedTable: Table, - onDelete: ForeignRowReference.OnDelete? = null - ): ForeignRowReference - - public fun > renameAndKeepForeignRowReference( - frr: ForeignRowReference, - onDelete: ForeignRowReference.OnDelete? = null - ): ForeignRowReference - - public fun , ttnUE : Any, nRT, nDT : DatabaseType> renameAndKeepForeignRowReferenceToUpdatedTable( - frr: ForeignRowReference, - updatedType: nDT, - updatedTable: Table, - onDelete: ForeignRowReference.OnDelete? = null - ): ForeignRowReference - - public fun deleteForeignRowReference(frr: ForeignRowReference) - - public fun > keepForeignRowReferenceUntilUpgraded( - frr: ForeignRowReference, - onDelete: ForeignRowReference.OnDelete? = null - ): ForeignRowReference - - public fun , ttnUE : Any, nRT, nDT : DatabaseType> keepForeignRowReferenceToUpdatedTableUntilUpgraded( - frr: ForeignRowReference, - updatedType: nDT, - updatedTable: Table, - onDelete: ForeignRowReference.OnDelete? = null - ): ForeignRowReference - -} \ No newline at end of file