1010 * nothing migrates into one.
1111 */
1212
13- import { and , desc , eq , isNull , sql } from "drizzle-orm" ;
13+ import { and , desc , eq , isNull } from "drizzle-orm" ;
1414import {
1515 DBModel ,
1616 ModelChangeEvent ,
@@ -128,28 +128,24 @@ export class Project extends DBModel {
128128 // Restore the legacy project.thread_id association before claiming
129129 // remaining threads for Personal.
130130 await executeRaw (
131- sql . raw (
132- `UPDATE nodetool_threads SET project_id = (` +
133- `SELECT p.id FROM projects p WHERE p.thread_id = nodetool_threads.id ` +
134- `AND p.user_id = nodetool_threads.user_id) ` +
135- `WHERE user_id = '${ owner } ' AND EXISTS (` +
136- `SELECT 1 FROM projects p WHERE p.thread_id = nodetool_threads.id ` +
137- `AND p.user_id = nodetool_threads.user_id) RETURNING id`
138- )
131+ `UPDATE nodetool_threads SET project_id = (` +
132+ `SELECT p.id FROM projects p WHERE p.thread_id = nodetool_threads.id ` +
133+ `AND p.user_id = nodetool_threads.user_id) ` +
134+ `WHERE user_id = '${ owner } ' AND EXISTS (` +
135+ `SELECT 1 FROM projects p WHERE p.thread_id = nodetool_threads.id ` +
136+ `AND p.user_id = nodetool_threads.user_id) RETURNING id`
139137 ) ;
140138 // Runs created from an already-assigned workflow inherit that ownership.
141139 // Jobs without a project column were otherwise indistinguishable from
142140 // genuinely unassigned runs.
143141 await executeRaw (
144- sql . raw (
145- `UPDATE nodetool_jobs SET project_id = (` +
146- `SELECT w.project_id FROM nodetool_workflows w ` +
147- `WHERE w.id = nodetool_jobs.workflow_id AND w.user_id = nodetool_jobs.user_id) ` +
148- `WHERE user_id = '${ owner } ' AND (project_id IS NULL OR project_id = '' ` +
149- `OR project_id = 'default') AND EXISTS (` +
150- `SELECT 1 FROM nodetool_workflows w WHERE w.id = nodetool_jobs.workflow_id ` +
151- `AND w.user_id = nodetool_jobs.user_id AND w.project_id <> 'default') RETURNING id`
152- )
142+ `UPDATE nodetool_jobs SET project_id = (` +
143+ `SELECT w.project_id FROM nodetool_workflows w ` +
144+ `WHERE w.id = nodetool_jobs.workflow_id AND w.user_id = nodetool_jobs.user_id) ` +
145+ `WHERE user_id = '${ owner } ' AND (project_id IS NULL OR project_id = '' ` +
146+ `OR project_id = 'default') AND EXISTS (` +
147+ `SELECT 1 FROM nodetool_workflows w WHERE w.id = nodetool_jobs.workflow_id ` +
148+ `AND w.user_id = nodetool_jobs.user_id AND w.project_id <> 'default') RETURNING id`
153149 ) ;
154150 const tables = [
155151 "storyboards" , "scripts" , "timeline_sequences" , "image_documents" ,
@@ -159,11 +155,9 @@ export class Project extends DBModel {
159155 ] ;
160156 for ( const table of tables ) {
161157 const result = await executeRaw (
162- sql . raw (
163- `UPDATE ${ table } SET project_id = '${ target } ' ` +
164- `WHERE user_id = '${ owner } ' AND ` +
165- `(project_id IS NULL OR project_id = '' OR project_id = 'default') RETURNING id`
166- )
158+ `UPDATE ${ table } SET project_id = '${ target } ' ` +
159+ `WHERE user_id = '${ owner } ' AND ` +
160+ `(project_id IS NULL OR project_id = '' OR project_id = 'default') RETURNING id`
167161 ) ;
168162 migrated += result . rows . length ;
169163 }
@@ -172,13 +166,11 @@ export class Project extends DBModel {
172166 let dangling = 0 ;
173167 for ( const table of tables ) {
174168 const result = await executeRaw (
175- sql . raw (
176- `SELECT COUNT(*) AS count FROM ${ table } r ` +
177- `WHERE r.user_id = '${ owner } ' AND r.project_id IS NOT NULL ` +
178- `AND r.project_id <> 'default' AND r.project_id <> '${ target } ' ` +
179- `AND NOT EXISTS (SELECT 1 FROM projects p ` +
180- `WHERE p.id = r.project_id AND p.user_id = r.user_id)`
181- )
169+ `SELECT COUNT(*) AS count FROM ${ table } r ` +
170+ `WHERE r.user_id = '${ owner } ' AND r.project_id IS NOT NULL ` +
171+ `AND r.project_id <> 'default' AND r.project_id <> '${ target } ' ` +
172+ `AND NOT EXISTS (SELECT 1 FROM projects p ` +
173+ `WHERE p.id = r.project_id AND p.user_id = r.user_id)`
182174 ) ;
183175 const rows = result . rows ;
184176 const count = ( rows [ 0 ] as { count ?: unknown } | undefined ) ?. count ;
0 commit comments