drizzle-kit 0.30.2-471d797 → 0.30.2-88fe396
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api.js +633 -337
- package/api.mjs +633 -337
- package/bin.cjs +238 -37
- package/package.json +1 -1
package/bin.cjs
CHANGED
@@ -24024,7 +24024,7 @@ function fromJson(statements, dialect6, action, json2) {
|
|
24024
24024
|
}).filter((it) => it !== "");
|
24025
24025
|
return result;
|
24026
24026
|
}
|
24027
|
-
var parseType, Convertor, PgCreateRoleConvertor, PgDropRoleConvertor, PgRenameRoleConvertor, PgAlterRoleConvertor, PgCreatePolicyConvertor, PgDropPolicyConvertor, PgRenamePolicyConvertor, PgAlterPolicyConvertor, PgCreateIndPolicyConvertor, PgDropIndPolicyConvertor, PgRenameIndPolicyConvertor, PgAlterIndPolicyConvertor, PgEnableRlsConvertor, PgDisableRlsConvertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SingleStoreCreateTableConvertor, SQLiteCreateTableConvertor, PgCreateViewConvertor, MySqlCreateViewConvertor, SqliteCreateViewConvertor, PgDropViewConvertor, MySqlDropViewConvertor, SqliteDropViewConvertor, MySqlAlterViewConvertor, PgRenameViewConvertor, MySqlRenameViewConvertor, PgAlterViewSchemaConvertor, PgAlterViewAddWithOptionConvertor, PgAlterViewDropWithOptionConvertor, PgAlterViewAlterTablespaceConvertor, PgAlterViewAlterUsingConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, PgAlterTableAddCheckConstraintConvertor, PgAlterTableDeleteCheckConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, MySqlAlterTableAddCheckConstraintConvertor, SingleStoreAlterTableAddUniqueConstraintConvertor, SingleStoreAlterTableDropUniqueConstraintConvertor, MySqlAlterTableDeleteCheckConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, DropTypeEnumConvertor, AlterTypeAddValueConvertor, AlterTypeSetSchemaConvertor, AlterRenameTypeConvertor, AlterTypeDropValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SingleStoreDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, SingleStoreRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SingleStoreAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SingleStoreAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SingleStoreAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor, SingleStoreAlterTableAddPk, SingleStoreAlterTableDropPk, SingleStoreModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSingleStoreIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SingleStoreDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, convertors;
|
24027
|
+
var parseType, Convertor, PgCreateRoleConvertor, PgDropRoleConvertor, PgRenameRoleConvertor, PgAlterRoleConvertor, PgCreatePolicyConvertor, PgDropPolicyConvertor, PgRenamePolicyConvertor, PgAlterPolicyConvertor, PgCreateIndPolicyConvertor, PgDropIndPolicyConvertor, PgRenameIndPolicyConvertor, PgAlterIndPolicyConvertor, PgEnableRlsConvertor, PgDisableRlsConvertor, PgCreateTableConvertor, MySqlCreateTableConvertor, SingleStoreCreateTableConvertor, SQLiteCreateTableConvertor, PgCreateViewConvertor, MySqlCreateViewConvertor, SqliteCreateViewConvertor, PgDropViewConvertor, MySqlDropViewConvertor, SqliteDropViewConvertor, MySqlAlterViewConvertor, PgRenameViewConvertor, MySqlRenameViewConvertor, PgAlterViewSchemaConvertor, PgAlterViewAddWithOptionConvertor, PgAlterViewDropWithOptionConvertor, PgAlterViewAlterTablespaceConvertor, PgAlterViewAlterUsingConvertor, PgAlterTableAlterColumnSetGenerated, PgAlterTableAlterColumnDropGenerated, PgAlterTableAlterColumnAlterGenerated, PgAlterTableAddUniqueConstraintConvertor, PgAlterTableDropUniqueConstraintConvertor, PgAlterTableAddCheckConstraintConvertor, PgAlterTableDeleteCheckConstraintConvertor, MySQLAlterTableAddUniqueConstraintConvertor, MySQLAlterTableDropUniqueConstraintConvertor, MySqlAlterTableAddCheckConstraintConvertor, SingleStoreAlterTableAddUniqueConstraintConvertor, SingleStoreAlterTableDropUniqueConstraintConvertor, MySqlAlterTableDeleteCheckConstraintConvertor, CreatePgSequenceConvertor, DropPgSequenceConvertor, RenamePgSequenceConvertor, MovePgSequenceConvertor, AlterPgSequenceConvertor, CreateTypeEnumConvertor, DropTypeEnumConvertor, AlterTypeAddValueConvertor, AlterTypeSetSchemaConvertor, AlterRenameTypeConvertor, AlterTypeDropValueConvertor, PgDropTableConvertor, MySQLDropTableConvertor, SingleStoreDropTableConvertor, SQLiteDropTableConvertor, PgRenameTableConvertor, SqliteRenameTableConvertor, MySqlRenameTableConvertor, SingleStoreRenameTableConvertor, PgAlterTableRenameColumnConvertor, MySqlAlterTableRenameColumnConvertor, SingleStoreAlterTableRenameColumnConvertor, SQLiteAlterTableRenameColumnConvertor, PgAlterTableDropColumnConvertor, MySqlAlterTableDropColumnConvertor, SingleStoreAlterTableDropColumnConvertor, SQLiteAlterTableDropColumnConvertor, PgAlterTableAddColumnConvertor, MySqlAlterTableAddColumnConvertor, SingleStoreAlterTableAddColumnConvertor, SQLiteAlterTableAddColumnConvertor, PgAlterTableAlterColumnSetTypeConvertor, PgAlterTableAlterColumnSetDefaultConvertor, PgAlterTableAlterColumnDropDefaultConvertor, PgAlterTableAlterColumnDropGeneratedConvertor, PgAlterTableAlterColumnSetExpressionConvertor, PgAlterTableAlterColumnAlterrGeneratedConvertor, SqliteAlterTableAlterColumnDropGeneratedConvertor, SqliteAlterTableAlterColumnSetExpressionConvertor, SqliteAlterTableAlterColumnAlterGeneratedConvertor, MySqlAlterTableAlterColumnAlterrGeneratedConvertor, MySqlAlterTableAddPk, MySqlAlterTableDropPk, LibSQLModifyColumn, MySqlModifyColumn, SingleStoreAlterTableAlterColumnAlterrGeneratedConvertor, SingleStoreAlterTableAddPk, SingleStoreAlterTableDropPk, SingleStoreModifyColumn, PgAlterTableCreateCompositePrimaryKeyConvertor, PgAlterTableDeleteCompositePrimaryKeyConvertor, PgAlterTableAlterCompositePrimaryKeyConvertor, MySqlAlterTableCreateCompositePrimaryKeyConvertor, MySqlAlterTableDeleteCompositePrimaryKeyConvertor, MySqlAlterTableAlterCompositePrimaryKeyConvertor, PgAlterTableAlterColumnSetPrimaryKeyConvertor, PgAlterTableAlterColumnDropPrimaryKeyConvertor, PgAlterTableAlterColumnSetNotNullConvertor, PgAlterTableAlterColumnDropNotNullConvertor, PgCreateForeignKeyConvertor, LibSQLCreateForeignKeyConvertor, MySqlCreateForeignKeyConvertor, PgAlterForeignKeyConvertor, PgDeleteForeignKeyConvertor, MySqlDeleteForeignKeyConvertor, CreatePgIndexConvertor, CreateMySqlIndexConvertor, CreateSingleStoreIndexConvertor, CreateSqliteIndexConvertor, PgDropIndexConvertor, PgCreateSchemaConvertor, PgRenameSchemaConvertor, PgDropSchemaConvertor, PgAlterTableSetSchemaConvertor, PgAlterTableSetNewSchemaConvertor, PgAlterTableRemoveFromSchemaConvertor, SqliteDropIndexConvertor, MySqlDropIndexConvertor, SingleStoreDropIndexConvertor, SQLiteRecreateTableConvertor, LibSQLRecreateTableConvertor, SingleStoreRecreateTableConvertor, convertors;
|
24028
24028
|
var init_sqlgenerator = __esm({
|
24029
24029
|
"src/sqlgenerator.ts"() {
|
24030
24030
|
"use strict";
|
@@ -24375,7 +24375,7 @@ var init_sqlgenerator = __esm({
|
|
24375
24375
|
if (typeof compositePKs !== "undefined" && compositePKs.length > 0) {
|
24376
24376
|
statement += ",\n";
|
24377
24377
|
const compositePK5 = SingleStoreSquasher.unsquashPK(compositePKs[0]);
|
24378
|
-
statement += ` CONSTRAINT \`${
|
24378
|
+
statement += ` CONSTRAINT \`${compositePK5.name}\` PRIMARY KEY(\`${compositePK5.columns.join(`\`,\``)}\`)`;
|
24379
24379
|
}
|
24380
24380
|
if (typeof uniqueConstraints !== "undefined" && uniqueConstraints.length > 0) {
|
24381
24381
|
for (const uniqueConstraint5 of uniqueConstraints) {
|
@@ -25035,7 +25035,7 @@ WITH ${withCheckOption} CHECK OPTION` : "";
|
|
25035
25035
|
}
|
25036
25036
|
convert(statement) {
|
25037
25037
|
const { tableNameFrom, tableNameTo } = statement;
|
25038
|
-
return `
|
25038
|
+
return `ALTER TABLE \`${tableNameFrom}\` RENAME TO \`${tableNameTo}\`;`;
|
25039
25039
|
}
|
25040
25040
|
};
|
25041
25041
|
PgAlterTableRenameColumnConvertor = class extends Convertor {
|
@@ -25063,7 +25063,7 @@ WITH ${withCheckOption} CHECK OPTION` : "";
|
|
25063
25063
|
}
|
25064
25064
|
convert(statement) {
|
25065
25065
|
const { tableName, oldColumnName, newColumnName } = statement;
|
25066
|
-
return `ALTER TABLE \`${tableName}\`
|
25066
|
+
return `ALTER TABLE \`${tableName}\` CHANGE \`${oldColumnName}\` \`${newColumnName}\`;`;
|
25067
25067
|
}
|
25068
25068
|
};
|
25069
25069
|
SQLiteAlterTableRenameColumnConvertor = class extends Convertor {
|
@@ -26378,10 +26378,52 @@ ${BREAKPOINT}ALTER TABLE ${tableNameWithSchema} ADD CONSTRAINT "${statement.newC
|
|
26378
26378
|
return sqlStatements;
|
26379
26379
|
}
|
26380
26380
|
};
|
26381
|
+
SingleStoreRecreateTableConvertor = class extends Convertor {
|
26382
|
+
can(statement, dialect6) {
|
26383
|
+
return statement.type === "singlestore_recreate_table" && dialect6 === "singlestore";
|
26384
|
+
}
|
26385
|
+
convert(statement) {
|
26386
|
+
const { tableName, columns, compositePKs, uniqueConstraints } = statement;
|
26387
|
+
const columnNames = columns.map((it) => `\`${it.name}\``).join(", ");
|
26388
|
+
const newTableName = `__new_${tableName}`;
|
26389
|
+
const sqlStatements = [];
|
26390
|
+
sqlStatements.push(
|
26391
|
+
new SingleStoreCreateTableConvertor().convert({
|
26392
|
+
type: "create_table",
|
26393
|
+
tableName: newTableName,
|
26394
|
+
columns,
|
26395
|
+
compositePKs,
|
26396
|
+
uniqueConstraints,
|
26397
|
+
schema: ""
|
26398
|
+
})
|
26399
|
+
);
|
26400
|
+
sqlStatements.push(
|
26401
|
+
`INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`
|
26402
|
+
);
|
26403
|
+
sqlStatements.push(
|
26404
|
+
new SingleStoreDropTableConvertor().convert({
|
26405
|
+
type: "drop_table",
|
26406
|
+
tableName,
|
26407
|
+
schema: ""
|
26408
|
+
})
|
26409
|
+
);
|
26410
|
+
sqlStatements.push(
|
26411
|
+
new SingleStoreRenameTableConvertor().convert({
|
26412
|
+
fromSchema: "",
|
26413
|
+
tableNameFrom: newTableName,
|
26414
|
+
tableNameTo: tableName,
|
26415
|
+
toSchema: "",
|
26416
|
+
type: "rename_table"
|
26417
|
+
})
|
26418
|
+
);
|
26419
|
+
return sqlStatements;
|
26420
|
+
}
|
26421
|
+
};
|
26381
26422
|
convertors = [];
|
26382
26423
|
convertors.push(new PgCreateTableConvertor());
|
26383
26424
|
convertors.push(new MySqlCreateTableConvertor());
|
26384
26425
|
convertors.push(new SingleStoreCreateTableConvertor());
|
26426
|
+
convertors.push(new SingleStoreRecreateTableConvertor());
|
26385
26427
|
convertors.push(new SQLiteCreateTableConvertor());
|
26386
26428
|
convertors.push(new SQLiteRecreateTableConvertor());
|
26387
26429
|
convertors.push(new LibSQLRecreateTableConvertor());
|
@@ -28390,7 +28432,7 @@ var init_jsonStatements = __esm({
|
|
28390
28432
|
});
|
28391
28433
|
|
28392
28434
|
// src/statementCombiner.ts
|
28393
|
-
var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements;
|
28435
|
+
var prepareLibSQLRecreateTable, prepareSQLiteRecreateTable, libSQLCombineStatements, sqliteCombineStatements, prepareSingleStoreRecreateTable, singleStoreCombineStatements;
|
28394
28436
|
var init_statementCombiner = __esm({
|
28395
28437
|
"src/statementCombiner.ts"() {
|
28396
28438
|
"use strict";
|
@@ -28669,6 +28711,101 @@ var init_statementCombiner = __esm({
|
|
28669
28711
|
const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
|
28670
28712
|
return [...renamedTables, ...renamedColumns, ...rest];
|
28671
28713
|
};
|
28714
|
+
prepareSingleStoreRecreateTable = (table5) => {
|
28715
|
+
const { name, columns, uniqueConstraints, indexes, compositePrimaryKeys } = table5;
|
28716
|
+
const composites = Object.values(compositePrimaryKeys);
|
28717
|
+
const statements = [
|
28718
|
+
{
|
28719
|
+
type: "singlestore_recreate_table",
|
28720
|
+
tableName: name,
|
28721
|
+
columns: Object.values(columns),
|
28722
|
+
compositePKs: composites,
|
28723
|
+
uniqueConstraints: Object.values(uniqueConstraints)
|
28724
|
+
}
|
28725
|
+
];
|
28726
|
+
if (Object.keys(indexes).length) {
|
28727
|
+
statements.push(...prepareCreateIndexesJson(name, "", indexes));
|
28728
|
+
}
|
28729
|
+
return statements;
|
28730
|
+
};
|
28731
|
+
singleStoreCombineStatements = (statements, json2) => {
|
28732
|
+
const newStatements = {};
|
28733
|
+
for (const statement of statements) {
|
28734
|
+
if (statement.type === "alter_table_alter_column_set_type" || statement.type === "alter_table_alter_column_set_notnull" || statement.type === "alter_table_alter_column_drop_notnull" || statement.type === "alter_table_alter_column_drop_autoincrement" || statement.type === "alter_table_alter_column_set_autoincrement" || statement.type === "alter_table_alter_column_drop_pk" || statement.type === "alter_table_alter_column_set_pk" || statement.type === "create_composite_pk" || statement.type === "alter_composite_pk" || statement.type === "delete_composite_pk") {
|
28735
|
+
const tableName2 = statement.tableName;
|
28736
|
+
const statementsForTable2 = newStatements[tableName2];
|
28737
|
+
if (!statementsForTable2) {
|
28738
|
+
newStatements[tableName2] = prepareSingleStoreRecreateTable(json2.tables[tableName2]);
|
28739
|
+
continue;
|
28740
|
+
}
|
28741
|
+
if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
|
28742
|
+
const wasRename = statementsForTable2.some(
|
28743
|
+
({ type }) => type === "rename_table" || type === "alter_table_rename_column"
|
28744
|
+
);
|
28745
|
+
const preparedStatements = prepareSingleStoreRecreateTable(json2.tables[tableName2]);
|
28746
|
+
if (wasRename) {
|
28747
|
+
newStatements[tableName2].push(...preparedStatements);
|
28748
|
+
} else {
|
28749
|
+
newStatements[tableName2] = preparedStatements;
|
28750
|
+
}
|
28751
|
+
continue;
|
28752
|
+
}
|
28753
|
+
continue;
|
28754
|
+
}
|
28755
|
+
if ((statement.type === "alter_table_alter_column_drop_default" || statement.type === "alter_table_alter_column_set_default") && statement.columnNotNull) {
|
28756
|
+
const tableName2 = statement.tableName;
|
28757
|
+
const statementsForTable2 = newStatements[tableName2];
|
28758
|
+
if (!statementsForTable2) {
|
28759
|
+
newStatements[tableName2] = prepareSingleStoreRecreateTable(json2.tables[tableName2]);
|
28760
|
+
continue;
|
28761
|
+
}
|
28762
|
+
if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
|
28763
|
+
const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
|
28764
|
+
const preparedStatements = prepareSingleStoreRecreateTable(json2.tables[tableName2]);
|
28765
|
+
if (wasRename) {
|
28766
|
+
newStatements[tableName2].push(...preparedStatements);
|
28767
|
+
} else {
|
28768
|
+
newStatements[tableName2] = preparedStatements;
|
28769
|
+
}
|
28770
|
+
continue;
|
28771
|
+
}
|
28772
|
+
continue;
|
28773
|
+
}
|
28774
|
+
if (statement.type === "alter_table_add_column" && statement.column.primaryKey) {
|
28775
|
+
const tableName2 = statement.tableName;
|
28776
|
+
const statementsForTable2 = newStatements[tableName2];
|
28777
|
+
if (!statementsForTable2) {
|
28778
|
+
newStatements[tableName2] = prepareSingleStoreRecreateTable(json2.tables[tableName2]);
|
28779
|
+
continue;
|
28780
|
+
}
|
28781
|
+
if (!statementsForTable2.some(({ type }) => type === "recreate_table")) {
|
28782
|
+
const wasRename = statementsForTable2.some(({ type }) => type === "rename_table");
|
28783
|
+
const preparedStatements = prepareSingleStoreRecreateTable(json2.tables[tableName2]);
|
28784
|
+
if (wasRename) {
|
28785
|
+
newStatements[tableName2].push(...preparedStatements);
|
28786
|
+
} else {
|
28787
|
+
newStatements[tableName2] = preparedStatements;
|
28788
|
+
}
|
28789
|
+
continue;
|
28790
|
+
}
|
28791
|
+
continue;
|
28792
|
+
}
|
28793
|
+
const tableName = statement.type === "rename_table" ? statement.tableNameTo : statement.tableName;
|
28794
|
+
const statementsForTable = newStatements[tableName];
|
28795
|
+
if (!statementsForTable) {
|
28796
|
+
newStatements[tableName] = [statement];
|
28797
|
+
continue;
|
28798
|
+
}
|
28799
|
+
if (!statementsForTable.some(({ type }) => type === "singlestore_recreate_table")) {
|
28800
|
+
newStatements[tableName].push(statement);
|
28801
|
+
}
|
28802
|
+
}
|
28803
|
+
const combinedStatements = Object.values(newStatements).flat();
|
28804
|
+
const renamedTables = combinedStatements.filter((it) => it.type === "rename_table");
|
28805
|
+
const renamedColumns = combinedStatements.filter((it) => it.type === "alter_table_rename_column");
|
28806
|
+
const rest = combinedStatements.filter((it) => it.type !== "rename_table" && it.type !== "alter_table_rename_column");
|
28807
|
+
return [...renamedTables, ...renamedColumns, ...rest];
|
28808
|
+
};
|
28672
28809
|
}
|
28673
28810
|
});
|
28674
28811
|
|
@@ -30578,7 +30715,7 @@ var init_snapshotsDiffer = __esm({
|
|
30578
30715
|
return [tableKey2, tableValue];
|
30579
30716
|
}
|
30580
30717
|
);
|
30581
|
-
const diffResult = applyJsonDiff(
|
30718
|
+
const diffResult = applyJsonDiff(columnsPatchedSnap1, json2);
|
30582
30719
|
const typedResult = diffResultSchemeSingleStore.parse(diffResult);
|
30583
30720
|
const jsonStatements = [];
|
30584
30721
|
const jsonCreateIndexesForCreatedTables = createdTables.map((it) => {
|
@@ -30742,7 +30879,8 @@ var init_snapshotsDiffer = __esm({
|
|
30742
30879
|
jsonStatements.push(...jsonDropColumnsStatemets);
|
30743
30880
|
jsonStatements.push(...jsonAddedCompositePKs);
|
30744
30881
|
jsonStatements.push(...jsonAlteredUniqueConstraints);
|
30745
|
-
const
|
30882
|
+
const combinedJsonStatements = singleStoreCombineStatements(jsonStatements, json2);
|
30883
|
+
const sqlStatements = fromJson(combinedJsonStatements, "singlestore");
|
30746
30884
|
const uniqueSqlStatements = [];
|
30747
30885
|
sqlStatements.forEach((ss) => {
|
30748
30886
|
if (!uniqueSqlStatements.includes(ss)) {
|
@@ -30754,7 +30892,7 @@ var init_snapshotsDiffer = __esm({
|
|
30754
30892
|
});
|
30755
30893
|
const _meta = prepareMigrationMeta([], rTables, rColumns);
|
30756
30894
|
return {
|
30757
|
-
statements:
|
30895
|
+
statements: combinedJsonStatements,
|
30758
30896
|
sqlStatements: uniqueSqlStatements,
|
30759
30897
|
_meta
|
30760
30898
|
};
|
@@ -65729,13 +65867,28 @@ var init_pgPushUtils = __esm({
|
|
65729
65867
|
});
|
65730
65868
|
|
65731
65869
|
// src/cli/commands/singlestorePushUtils.ts
|
65870
|
+
function findColumnTypeAlternations(columns1, columns2) {
|
65871
|
+
const changes = [];
|
65872
|
+
for (const key in columns1) {
|
65873
|
+
if (columns1.hasOwnProperty(key) && columns2.hasOwnProperty(key)) {
|
65874
|
+
const col1 = columns1[key];
|
65875
|
+
const col2 = columns2[key];
|
65876
|
+
if (col1.type !== col2.type) {
|
65877
|
+
changes.push(col2.name);
|
65878
|
+
}
|
65879
|
+
}
|
65880
|
+
}
|
65881
|
+
return changes;
|
65882
|
+
}
|
65732
65883
|
var import_hanji8, filterStatements2, logSuggestionsAndReturn3;
|
65733
65884
|
var init_singlestorePushUtils = __esm({
|
65734
65885
|
"src/cli/commands/singlestorePushUtils.ts"() {
|
65735
65886
|
"use strict";
|
65736
65887
|
init_source();
|
65737
65888
|
import_hanji8 = __toESM(require_hanji());
|
65889
|
+
init_sqlgenerator();
|
65738
65890
|
init_singlestoreSchema();
|
65891
|
+
init_utils2();
|
65739
65892
|
init_selector_ui();
|
65740
65893
|
init_outputs();
|
65741
65894
|
filterStatements2 = (statements, currentSchema, prevSchema) => {
|
@@ -65779,7 +65932,7 @@ var init_singlestorePushUtils = __esm({
|
|
65779
65932
|
return true;
|
65780
65933
|
});
|
65781
65934
|
};
|
65782
|
-
logSuggestionsAndReturn3 = async (db, statements, json2) => {
|
65935
|
+
logSuggestionsAndReturn3 = async (db, statements, json2, json1) => {
|
65783
65936
|
let shouldAskForApprove = false;
|
65784
65937
|
const statementsToExecute = [];
|
65785
65938
|
const infoToPrint = [];
|
@@ -65960,6 +66113,71 @@ var init_singlestorePushUtils = __esm({
|
|
65960
66113
|
shouldAskForApprove = true;
|
65961
66114
|
}
|
65962
66115
|
}
|
66116
|
+
} else if (statement.type === "singlestore_recreate_table") {
|
66117
|
+
const tableName = statement.tableName;
|
66118
|
+
const prevColumns = json1.tables[tableName].columns;
|
66119
|
+
const currentColumns = json2.tables[tableName].columns;
|
66120
|
+
const { removedColumns, addedColumns } = findAddedAndRemoved(
|
66121
|
+
Object.keys(prevColumns),
|
66122
|
+
Object.keys(currentColumns)
|
66123
|
+
);
|
66124
|
+
if (removedColumns.length) {
|
66125
|
+
for (const removedColumn of removedColumns) {
|
66126
|
+
const res = await db.query(
|
66127
|
+
`select count(\`${tableName}\`.\`${removedColumn}\`) as count from \`${tableName}\``
|
66128
|
+
);
|
66129
|
+
const count = Number(res[0].count);
|
66130
|
+
if (count > 0) {
|
66131
|
+
infoToPrint.push(
|
66132
|
+
`\xB7 You're about to delete ${source_default.underline(
|
66133
|
+
removedColumn
|
66134
|
+
)} column in ${tableName} table with ${count} items`
|
66135
|
+
);
|
66136
|
+
columnsToRemove.push(removedColumn);
|
66137
|
+
shouldAskForApprove = true;
|
66138
|
+
}
|
66139
|
+
}
|
66140
|
+
}
|
66141
|
+
if (addedColumns.length) {
|
66142
|
+
for (const addedColumn of addedColumns) {
|
66143
|
+
const [res] = await db.query(
|
66144
|
+
`select count(*) as count from \`${tableName}\``
|
66145
|
+
);
|
66146
|
+
const columnConf = json2.tables[tableName].columns[addedColumn];
|
66147
|
+
const count = Number(res.count);
|
66148
|
+
if (count > 0 && columnConf.notNull && !columnConf.default) {
|
66149
|
+
infoToPrint.push(
|
66150
|
+
`\xB7 You're about to add not-null ${source_default.underline(
|
66151
|
+
addedColumn
|
66152
|
+
)} column without default value to table, which contains ${count} items`
|
66153
|
+
);
|
66154
|
+
shouldAskForApprove = true;
|
66155
|
+
tablesToTruncate.push(tableName);
|
66156
|
+
statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`);
|
66157
|
+
}
|
66158
|
+
}
|
66159
|
+
}
|
66160
|
+
const columnWithChangedType = findColumnTypeAlternations(prevColumns, currentColumns);
|
66161
|
+
for (const column9 of columnWithChangedType) {
|
66162
|
+
const [res] = await db.query(
|
66163
|
+
`select count(*) as count from \`${tableName}\` WHERE \`${tableName}\`.\`${column9}\` IS NOT NULL;`
|
66164
|
+
);
|
66165
|
+
const count = Number(res.count);
|
66166
|
+
if (count > 0) {
|
66167
|
+
infoToPrint.push(
|
66168
|
+
`\xB7 You're about recreate ${source_default.underline(tableName)} table with data type changing for ${source_default.underline(
|
66169
|
+
column9
|
66170
|
+
)} column, which contains ${count} items`
|
66171
|
+
);
|
66172
|
+
shouldAskForApprove = true;
|
66173
|
+
tablesToTruncate.push(tableName);
|
66174
|
+
statementsToExecute.push(`TRUNCATE TABLE \`${tableName}\`;`);
|
66175
|
+
}
|
66176
|
+
}
|
66177
|
+
}
|
66178
|
+
const stmnt = fromJson([statement], "singlestore", "push");
|
66179
|
+
if (typeof stmnt !== "undefined") {
|
66180
|
+
statementsToExecute.push(...stmnt);
|
65963
66181
|
}
|
65964
66182
|
}
|
65965
66183
|
return {
|
@@ -67810,30 +68028,16 @@ var init_push = __esm({
|
|
67810
68028
|
} = await logSuggestionsAndReturn3(
|
67811
68029
|
db,
|
67812
68030
|
filteredStatements,
|
67813
|
-
statements.validatedCur
|
68031
|
+
statements.validatedCur,
|
68032
|
+
statements.validatedPrev
|
67814
68033
|
);
|
67815
|
-
const filteredSqlStatements = fromJson(filteredStatements, "singlestore");
|
67816
|
-
const uniqueSqlStatementsToExecute = [];
|
67817
|
-
statementsToExecute.forEach((ss) => {
|
67818
|
-
if (!uniqueSqlStatementsToExecute.includes(ss)) {
|
67819
|
-
uniqueSqlStatementsToExecute.push(ss);
|
67820
|
-
}
|
67821
|
-
});
|
67822
|
-
const uniqueFilteredSqlStatements = [];
|
67823
|
-
filteredSqlStatements.forEach((ss) => {
|
67824
|
-
if (!uniqueFilteredSqlStatements.includes(ss)) {
|
67825
|
-
uniqueFilteredSqlStatements.push(ss);
|
67826
|
-
}
|
67827
|
-
});
|
67828
68034
|
if (verbose) {
|
67829
68035
|
console.log();
|
67830
68036
|
console.log(
|
67831
68037
|
withStyle.warning("You are about to execute current statements:")
|
67832
68038
|
);
|
67833
68039
|
console.log();
|
67834
|
-
console.log(
|
67835
|
-
[...uniqueSqlStatementsToExecute, ...uniqueFilteredSqlStatements].map((s2) => source_default.blue(s2)).join("\n")
|
67836
|
-
);
|
68040
|
+
console.log(statementsToExecute.map((s2) => source_default.blue(s2)).join("\n"));
|
67837
68041
|
console.log();
|
67838
68042
|
}
|
67839
68043
|
if (!force && strict) {
|
@@ -67868,12 +68072,9 @@ var init_push = __esm({
|
|
67868
68072
|
process.exit(0);
|
67869
68073
|
}
|
67870
68074
|
}
|
67871
|
-
for (const dStmnt of
|
68075
|
+
for (const dStmnt of statementsToExecute) {
|
67872
68076
|
await db.query(dStmnt);
|
67873
68077
|
}
|
67874
|
-
for (const statement of uniqueFilteredSqlStatements) {
|
67875
|
-
await db.query(statement);
|
67876
|
-
}
|
67877
68078
|
if (filteredStatements.length > 0) {
|
67878
68079
|
(0, import_hanji13.render)(`[${source_default.green("\u2713")}] Changes applied`);
|
67879
68080
|
} else {
|
@@ -74509,7 +74710,7 @@ var init_studio2 = __esm({
|
|
74509
74710
|
};
|
74510
74711
|
prepareSingleStoreSchema = async (path4) => {
|
74511
74712
|
const imports = prepareFilenames(path4);
|
74512
|
-
const
|
74713
|
+
const singlestoreSchema2 = {
|
74513
74714
|
public: {}
|
74514
74715
|
};
|
74515
74716
|
const relations4 = {};
|
@@ -74526,7 +74727,7 @@ var init_studio2 = __esm({
|
|
74526
74727
|
i0values.forEach(([k, t2]) => {
|
74527
74728
|
if ((0, import_drizzle_orm10.is)(t2, import_singlestore_core3.SingleStoreTable)) {
|
74528
74729
|
const schema6 = (0, import_singlestore_core3.getTableConfig)(t2).schema || "public";
|
74529
|
-
|
74730
|
+
singlestoreSchema2[schema6][k] = t2;
|
74530
74731
|
}
|
74531
74732
|
if ((0, import_drizzle_orm10.is)(t2, import_drizzle_orm10.Relations)) {
|
74532
74733
|
relations4[k] = t2;
|
@@ -74534,7 +74735,7 @@ var init_studio2 = __esm({
|
|
74534
74735
|
});
|
74535
74736
|
}
|
74536
74737
|
unregister();
|
74537
|
-
return { schema:
|
74738
|
+
return { schema: singlestoreSchema2, relations: relations4, files };
|
74538
74739
|
};
|
74539
74740
|
getCustomDefaults = (schema6) => {
|
74540
74741
|
const customDefaults = [];
|
@@ -74660,10 +74861,10 @@ var init_studio2 = __esm({
|
|
74660
74861
|
schemaFiles
|
74661
74862
|
};
|
74662
74863
|
};
|
74663
|
-
drizzleForSingleStore = async (credentials2,
|
74864
|
+
drizzleForSingleStore = async (credentials2, singlestoreSchema2, relations4, schemaFiles) => {
|
74664
74865
|
const { connectToSingleStore: connectToSingleStore2 } = await Promise.resolve().then(() => (init_connections(), connections_exports));
|
74665
74866
|
const { proxy } = await connectToSingleStore2(credentials2);
|
74666
|
-
const customDefaults = getCustomDefaults(
|
74867
|
+
const customDefaults = getCustomDefaults(singlestoreSchema2);
|
74667
74868
|
let dbUrl;
|
74668
74869
|
if ("url" in credentials2) {
|
74669
74870
|
dbUrl = credentials2.url;
|
@@ -74676,7 +74877,7 @@ var init_studio2 = __esm({
|
|
74676
74877
|
dialect: "singlestore",
|
74677
74878
|
proxy,
|
74678
74879
|
customDefaults,
|
74679
|
-
schema:
|
74880
|
+
schema: singlestoreSchema2,
|
74680
74881
|
relations: relations4,
|
74681
74882
|
schemaFiles
|
74682
74883
|
};
|
@@ -77382,7 +77583,7 @@ init_utils5();
|
|
77382
77583
|
var version2 = async () => {
|
77383
77584
|
const { npmVersion } = await ormCoreVersions();
|
77384
77585
|
const ormVersion = npmVersion ? `drizzle-orm: v${npmVersion}` : "";
|
77385
|
-
const envVersion = "0.30.2-
|
77586
|
+
const envVersion = "0.30.2-88fe396";
|
77386
77587
|
const kitVersion = envVersion ? `v${envVersion}` : "--";
|
77387
77588
|
const versions = `drizzle-kit: ${kitVersion}
|
77388
77589
|
${ormVersion}`;
|