@powerhousedao/network-admin 0.0.31 → 0.0.33
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../processors/workstreams/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,wBAAsB,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../processors/workstreams/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGrE,wBAAsB,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAqE9D;AAED,wBAAsB,IAAI,CAAC,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE"}
|
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
import { sql } from "kysely";
|
|
2
2
|
export async function up(db) {
|
|
3
|
-
// Create enum types first (without IF NOT EXISTS as it's not supported for CREATE TYPE)
|
|
4
|
-
try {
|
|
5
|
-
await sql `CREATE TYPE workstream_status AS ENUM ('RFP_DRAFT', 'PREWORK_RFC', 'RFP_CANCELLED', 'OPEN_FOR_PROPOSALS', 'PROPOSAL_SUBMITTED', 'NOT_AWARDED', 'AWARDED', 'IN_PROGRESS', 'FINISHED')`.execute(db);
|
|
6
|
-
}
|
|
7
|
-
catch (error) {
|
|
8
|
-
// Type might already exist, ignore error
|
|
9
|
-
}
|
|
10
|
-
try {
|
|
11
|
-
await sql `CREATE TYPE proposal_status AS ENUM ('DRAFT', 'SUBMITTED', 'ACCEPTED', 'REJECTED')`.execute(db);
|
|
12
|
-
}
|
|
13
|
-
catch (error) {
|
|
14
|
-
// Type might already exist, ignore error
|
|
15
|
-
}
|
|
16
3
|
// Create table with IF NOT EXISTS
|
|
4
|
+
let tableCreated = false;
|
|
17
5
|
try {
|
|
18
6
|
await db.schema
|
|
19
7
|
.createTable("workstreams")
|
|
@@ -22,60 +10,66 @@ export async function up(db) {
|
|
|
22
10
|
.addColumn("workstream_phid", "varchar(255)")
|
|
23
11
|
.addColumn('workstream_slug', 'varchar(255)')
|
|
24
12
|
.addColumn('workstream_title', 'varchar(255)')
|
|
25
|
-
.addColumn('workstream_status',
|
|
13
|
+
.addColumn('workstream_status', 'varchar(255)')
|
|
26
14
|
.addColumn('sow_phid', 'varchar(255)')
|
|
27
15
|
.addColumn('roadmap_oid', 'varchar(255)')
|
|
28
16
|
.addColumn('final_milestone_target', 'timestamp')
|
|
29
|
-
.addColumn('initial_proposal_status',
|
|
17
|
+
.addColumn('initial_proposal_status', 'varchar(255)')
|
|
30
18
|
.addColumn('initial_proposal_author', 'varchar(255)')
|
|
31
19
|
.addPrimaryKeyConstraint("workstreams_pkey", ["workstream_phid"])
|
|
32
20
|
.ifNotExists()
|
|
33
21
|
.execute();
|
|
22
|
+
tableCreated = true;
|
|
34
23
|
}
|
|
35
24
|
catch (error) {
|
|
36
|
-
// Table might already exist
|
|
25
|
+
// Table creation failed, might already exist or error occurred
|
|
26
|
+
// Check if table exists before trying to add columns
|
|
37
27
|
}
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
28
|
+
// Check if table exists before trying to add columns
|
|
29
|
+
let tableExists = false;
|
|
30
|
+
try {
|
|
31
|
+
const result = await sql `
|
|
32
|
+
SELECT EXISTS (
|
|
33
|
+
SELECT FROM information_schema.tables
|
|
34
|
+
WHERE table_name = 'workstreams'
|
|
35
|
+
)
|
|
36
|
+
`.execute(db);
|
|
37
|
+
tableExists = result.rows?.[0]?.exists === true || result[0]?.exists === true;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
// If we can't check, assume table doesn't exist
|
|
41
|
+
tableExists = false;
|
|
42
|
+
}
|
|
43
|
+
// Only try to add columns if table exists and wasn't just created
|
|
44
|
+
if (tableExists && !tableCreated) {
|
|
45
|
+
// Add missing columns if table already existed (migration upgrade path)
|
|
46
|
+
// Use try-catch since PostgreSQL doesn't support IF NOT EXISTS for ALTER TABLE ADD COLUMN
|
|
47
|
+
const addColumnIfNotExists = async (columnName, columnDef) => {
|
|
48
|
+
try {
|
|
43
49
|
await db.schema.alterTable("workstreams").addColumn(columnName, columnDef).execute();
|
|
44
50
|
}
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
catch (error) {
|
|
52
|
+
// Column already exists (error code 42701) - ignore
|
|
53
|
+
// Table doesn't exist (error code 42P01) - ignore (shouldn't happen but handle gracefully)
|
|
54
|
+
if (error?.code !== '42701' && error?.code !== '42P16' && error?.code !== '42P01') {
|
|
55
|
+
console.warn(`Error adding column ${columnName}:`, error?.message || error);
|
|
49
56
|
}
|
|
50
|
-
else if (columnName === 'initial_proposal_status') {
|
|
51
|
-
await sql `ALTER TABLE workstreams ADD COLUMN initial_proposal_status proposal_status`.execute(db);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
// Column already exists (error code 42701) - ignore
|
|
57
|
-
// Other errors might indicate issues, but we continue
|
|
58
|
-
if (error?.code !== '42701' && error?.code !== '42P16') {
|
|
59
|
-
console.warn(`Error adding column ${columnName}:`, error?.message || error);
|
|
60
57
|
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
58
|
+
};
|
|
59
|
+
await addColumnIfNotExists('network_phid', 'varchar(255)');
|
|
60
|
+
await addColumnIfNotExists('network_slug', 'varchar(255)');
|
|
61
|
+
await addColumnIfNotExists('workstream_phid', 'varchar(255)');
|
|
62
|
+
await addColumnIfNotExists('workstream_slug', 'varchar(255)');
|
|
63
|
+
await addColumnIfNotExists('workstream_title', 'varchar(255)');
|
|
64
|
+
await addColumnIfNotExists('workstream_status', 'varchar(255)');
|
|
65
|
+
await addColumnIfNotExists('sow_phid', 'varchar(255)');
|
|
66
|
+
await addColumnIfNotExists('roadmap_oid', 'varchar(255)');
|
|
67
|
+
await addColumnIfNotExists('final_milestone_target', 'timestamp');
|
|
68
|
+
await addColumnIfNotExists('initial_proposal_status', 'varchar(255)');
|
|
69
|
+
await addColumnIfNotExists('initial_proposal_author', 'varchar(255)');
|
|
70
|
+
}
|
|
74
71
|
}
|
|
75
72
|
export async function down(db) {
|
|
76
73
|
// drop table
|
|
77
74
|
await db.schema.dropTable("workstreams").execute();
|
|
78
|
-
// drop enum types
|
|
79
|
-
await sql `DROP TYPE IF EXISTS workstream_status`.execute(db);
|
|
80
|
-
await sql `DROP TYPE IF EXISTS proposal_status`.execute(db);
|
|
81
75
|
}
|