()
| 131 | } |
| 132 | |
| 133 | async function getInitialStats(): Promise<void> { |
| 134 | console.log("๐ Getting initial stats..."); |
| 135 | |
| 136 | const totalVideos = await db() |
| 137 | .select({ count: sql<number>`count(*)` }) |
| 138 | .from(videos); |
| 139 | |
| 140 | const videosWithOrgId = await db() |
| 141 | .select({ count: sql<number>`count(*)` }) |
| 142 | .from(videos) |
| 143 | .where(isNotNull(videos.orgId)); |
| 144 | |
| 145 | const videosNeedingOrgId = await db() |
| 146 | .select({ count: sql<number>`count(*)` }) |
| 147 | .from(videos) |
| 148 | .innerJoin(users, eq(videos.ownerId, users.id)) |
| 149 | .where(and(isNull(videos.orgId), isNotNull(users.activeOrganizationId))); |
| 150 | |
| 151 | const totalUsers = await db() |
| 152 | .select({ count: sql<number>`count(*)` }) |
| 153 | .from(users); |
| 154 | |
| 155 | const usersWithDefaultOrgId = await db() |
| 156 | .select({ count: sql<number>`count(*)` }) |
| 157 | .from(users) |
| 158 | .where(isNotNull(users.defaultOrgId)); |
| 159 | |
| 160 | const usersNeedingDefaultOrgId = await db() |
| 161 | .select({ count: sql<number>`count(*)` }) |
| 162 | .from(users) |
| 163 | .where( |
| 164 | and(isNull(users.defaultOrgId), isNotNull(users.activeOrganizationId)), |
| 165 | ); |
| 166 | |
| 167 | console.log("๐ Initial stats:"); |
| 168 | console.log(` Total videos: ${totalVideos[0]?.count || 0}`); |
| 169 | console.log(` Videos with orgId: ${videosWithOrgId[0]?.count || 0}`); |
| 170 | console.log(` Videos needing orgId: ${videosNeedingOrgId[0]?.count || 0}`); |
| 171 | console.log(` Total users: ${totalUsers[0]?.count || 0}`); |
| 172 | console.log( |
| 173 | ` Users with defaultOrgId: ${usersWithDefaultOrgId[0]?.count || 0}`, |
| 174 | ); |
| 175 | console.log( |
| 176 | ` Users needing defaultOrgId: ${usersNeedingDefaultOrgId[0]?.count || 0}`, |
| 177 | ); |
| 178 | console.log(""); |
| 179 | } |
| 180 | |
| 181 | export async function runOrgIdBackfill() { |
| 182 | console.log("๐ Starting orgId backfill script"); |
no test coverage detected