package Ġapp . cash . sql de light . dialect s . sqlite _ 3 _ 1 8 Ċ Ċ import Ġapp . cash . sql de light . dialect . api . Sql Generator Strategy Ċ Ċ class ĠSql ite Migration Strategy Ġ: ĠSql Generator Strategy Ġ{ ĊĊĠ Ġoverride Ġfun ĠtableName Changed ( old Name : ĠString , ĠnewName : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" ALTER ĠTABLE Ġ$ old Name ĠR ENAME ĠTO Ġ$ new Name ;" ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcolumn Added ( tableName : ĠString , Ġcolumn Def : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" ALTER ĠTABLE Ġ$ tableName ĠADD ĠCOLUMN Ġ$ column Def ;" ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġcolumn Removed ( ĊĠĠĠ ĠtableName : ĠString , ĊĠĠĠ ĠcolumnName : ĠString , ĊĠĠĠ Ġcolumn Def List : ĠList < String > ĊĠ Ġ): ĠString Ġ{ ĊĠĠĠ Ġval Ġcolumn Names Ġ= Ġcolumn Def List . filter Ġ{ Ġ! it . startsWith ( columnName ) Ġ} ĊĠĠĠĠĠ Ġ. join ToString (", Ġ") Ġ{ Ġcolumn Def Ġ-> Ġcolumn Def . take While Ġ{ Ġ! Character . is Whitespace ( it ) Ġ} Ġ} ĊĠĠĠ Ġval Ġcolumn Def String Ġ= Ġcolumn Def List . filter Ġ{ Ġ! it . startsWith ( columnName ) Ġ} ĊĠĠĠĠĠ Ġ. join ToString (", Ġ") ĊĊĠĠĠ Ġreturn Ġ""" ĊĠĠĠĠĠ Ġ| CREATE ĠTABLE Ġtmp _$ tableName Ġ($ column Def String ); ĊĠĠĠĠĠ Ġ| INSERT ĠINTO Ġtmp _$ tableName Ġ($ column Names ) ĠSELECT Ġ($ column Names ) ĠFROM Ġ$ tableName ; ĊĠĠĠĠĠ Ġ| DROP ĠTABLE Ġ$ tableName ; ĊĠĠĠĠĠ Ġ| ALTER ĠTABLE Ġtmp _$ tableName ĠR ENAME ĠTO Ġ$ tableName ; ĊĠĠĠ Ġ""" . trim Margin () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠcolumnName Changed ( ĊĠĠĠ ĠtableName : ĠString , ĊĠĠĠ Ġold Name : ĠString , ĊĠĠĠ ĠnewName : ĠString , ĊĠĠĠ Ġcolumn Def List : ĠList < String > ĊĠ Ġ): ĠString Ġ{ ĊĠĠĠ Ġval Ġnew Column Def List Ġ= Ġcolumn Def List . to Mutable List () ĊĠĠĠ Ġval Ġindex Ġ= Ġnew Column Def List . indexOf First Ġ{ Ġit . startsWith ( old Name ) Ġ} ĊĠĠĠ Ġnew Column Def List [ index ] Ġ= Ġnew Column Def List [ index ]. replace ( old Name , ĠnewName ) ĊĊĠĠĠ Ġval Ġnew Column Def String Ġ= Ġnew Column Def List . join ToString (", Ġ") ĊĠĠĠ Ġval Ġnew Column Names Ġ= Ġnew Column Def List . join ToString (", Ġ") Ġ{ Ġcolumn Def Ġ-> ĊĠĠĠĠĠ Ġcolumn Def . take While Ġ{ Ġ! Character . is Whitespace ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġold Column Names Ġ= Ġcolumn Def List . join ToString (", Ġ") Ġ{ Ġcolumn Def Ġ-> ĊĠĠĠĠĠ Ġcolumn Def . take While Ġ{ Ġ! Character . is Whitespace ( it ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ""" ĊĠĠĠĠĠ Ġ| CREATE ĠTABLE Ġtmp _$ tableName Ġ($ new Column Def String ); ĊĠĠĠĠĠ Ġ| INSERT ĠINTO Ġtmp _$ tableName Ġ($ new Column Names ) ĠSELECT Ġ$ old Column Names ĠFROM Ġ$ tableName ; ĊĠĠĠĠĠ Ġ| DROP ĠTABLE Ġ$ tableName ; ĊĠĠĠĠĠ Ġ| ALTER ĠTABLE Ġtmp _$ tableName ĠR ENAME ĠTO Ġ$ tableName ; ĊĠĠĠ Ġ""" . trim Margin () ĊĠ Ġ} Ċ } Ċ