diff --git a/apps/extract-stack/src/extract-merge-requests.ts b/apps/extract-stack/src/extract-merge-requests.ts index ee25cf33c..3d7c5b740 100644 --- a/apps/extract-stack/src/extract-merge-requests.ts +++ b/apps/extract-stack/src/extract-merge-requests.ts @@ -62,6 +62,7 @@ export const eventHandler = EventHandler(extractRepositoryEvent, async (evt) => const externalRepositoryId = evt.properties.repository.externalId; const repositoryName = evt.properties.repository.name; const namespace = evt.properties.namespace; + const repository = evt.properties.repository; const sourceControl = evt.metadata.sourceControl; const repositoryId = evt.properties.repository.id; @@ -80,12 +81,8 @@ export const eventHandler = EventHandler(extractRepositoryEvent, async (evt) => for (let index = 1; index <= paginationInfo.totalPages; index++) { await extractMergeRequestMessage.send({ - repository: { - id: repositoryId, - externalId: externalRepositoryId, - name: repositoryName - }, - namespace: namespace, + repository, + namespace, pagination: { page: index, perPage: paginationInfo.perPage, diff --git a/migrations/extract/0000_deep_adam_destine.sql b/migrations/extract/0000_deep_adam_destine.sql deleted file mode 100644 index cadcb5f39..000000000 --- a/migrations/extract/0000_deep_adam_destine.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE `namespaces` ( - `id` integer PRIMARY KEY NOT NULL, - `external_id` integer NOT NULL, - `name` text NOT NULL -); ---> statement-breakpoint -CREATE TABLE `repositories` ( - `id` integer PRIMARY KEY NOT NULL, - `external_id` integer NOT NULL -); ---> statement-breakpoint -CREATE UNIQUE INDEX `namespaces_external_id_idx` ON `namespaces` (`external_id`);--> statement-breakpoint -CREATE UNIQUE INDEX `repositories_external_id_idx` ON `repositories` (`external_id`); \ No newline at end of file diff --git a/migrations/extract/0001_wealthy_medusa.sql b/migrations/extract/0000_purple_selene.sql similarity index 54% rename from migrations/extract/0001_wealthy_medusa.sql rename to migrations/extract/0000_purple_selene.sql index 2a690596a..97f55c094 100644 --- a/migrations/extract/0001_wealthy_medusa.sql +++ b/migrations/extract/0000_purple_selene.sql @@ -2,14 +2,16 @@ CREATE TABLE `members` ( `id` integer PRIMARY KEY NOT NULL, `external_id` integer NOT NULL, `name` text NOT NULL, - `username` text NOT NULL + `username` text NOT NULL, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP ); --> statement-breakpoint CREATE TABLE `merge_request_commits` ( `id` integer PRIMARY KEY NOT NULL, `merge_request_id` integer NOT NULL, `external_id` text NOT NULL, - `created_at` text NOT NULL, + `commit_created_at` text NOT NULL, `authored_date` text, `committed_date` text, `title` text NOT NULL, @@ -17,7 +19,9 @@ CREATE TABLE `merge_request_commits` ( `author_name` text NOT NULL, `author_email` text NOT NULL, `committer_name` text, - `committer_email` text + `committer_email` text, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP ); --> statement-breakpoint CREATE TABLE `merge_request_diffs` ( @@ -30,23 +34,47 @@ CREATE TABLE `merge_request_diffs` ( `new_file` integer NOT NULL, `renamed_file` integer NOT NULL, `deleted_file` integer NOT NULL, - `diff` text NOT NULL + `diff` text NOT NULL, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP ); --> statement-breakpoint CREATE TABLE `merge_requests` ( `id` integer PRIMARY KEY NOT NULL, `external_id` integer NOT NULL, `merge_request_id` integer NOT NULL, - `repository_id` integer NOT NULL + `repository_id` integer NOT NULL, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP +); +--> statement-breakpoint +CREATE TABLE `namespaces` ( + `id` integer PRIMARY KEY NOT NULL, + `external_id` integer NOT NULL, + `name` text NOT NULL, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP +); +--> statement-breakpoint +CREATE TABLE `repositories` ( + `id` integer PRIMARY KEY NOT NULL, + `external_id` integer NOT NULL, + `name` text NOT NULL, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP ); --> statement-breakpoint CREATE TABLE `repositories_to_members` ( `repository_id` integer NOT NULL, `member_id` integer NOT NULL, + `created_at` integer DEFAULT CURRENT_TIMESTAMP, + `updated_at` integer DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY(`member_id`, `repository_id`) ); --> statement-breakpoint CREATE UNIQUE INDEX `members_external_id_idx` ON `members` (`external_id`);--> statement-breakpoint CREATE UNIQUE INDEX `merge_request_commits_external_id_idx` ON `merge_request_commits` (`external_id`);--> statement-breakpoint CREATE UNIQUE INDEX `diffs_merge_request_id_newPath_idx` ON `merge_request_diffs` (`merge_request_id`,`new_path`);--> statement-breakpoint -CREATE UNIQUE INDEX `merge_requests_external_id_idx` ON `merge_requests` (`external_id`); \ No newline at end of file +CREATE UNIQUE INDEX `merge_requests_external_id_idx` ON `merge_requests` (`external_id`);--> statement-breakpoint +CREATE UNIQUE INDEX `namespaces_external_id_idx` ON `namespaces` (`external_id`);--> statement-breakpoint +CREATE UNIQUE INDEX `repositories_external_id_idx` ON `repositories` (`external_id`); diff --git a/migrations/extract/0002_even_marvel_boy.sql b/migrations/extract/0002_even_marvel_boy.sql deleted file mode 100644 index 4a5e93762..000000000 --- a/migrations/extract/0002_even_marvel_boy.sql +++ /dev/null @@ -1 +0,0 @@ -ALTER TABLE repositories ADD `name` text NOT NULL; \ No newline at end of file diff --git a/migrations/extract/meta/0000_snapshot.json b/migrations/extract/meta/0000_snapshot.json index 6d8b5d95b..6b7168346 100644 --- a/migrations/extract/meta/0000_snapshot.json +++ b/migrations/extract/meta/0000_snapshot.json @@ -1,9 +1,352 @@ { "version": "5", "dialect": "sqlite", - "id": "fd3ad6b7-efbc-47e8-a91a-c88b20049a2d", + "id": "2315e8db-4d2f-4497-941f-f3b5641084be", "prevId": "00000000-0000-0000-0000-000000000000", "tables": { + "members": { + "name": "members", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "external_id": { + "name": "external_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "username": { + "name": "username", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + } + }, + "indexes": { + "members_external_id_idx": { + "name": "members_external_id_idx", + "columns": [ + "external_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "merge_request_commits": { + "name": "merge_request_commits", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "merge_request_id": { + "name": "merge_request_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "external_id": { + "name": "external_id", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "commit_created_at": { + "name": "commit_created_at", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "authored_date": { + "name": "authored_date", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "committed_date": { + "name": "committed_date", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "title": { + "name": "title", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "message": { + "name": "message", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "author_name": { + "name": "author_name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "author_email": { + "name": "author_email", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "committer_name": { + "name": "committer_name", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "committer_email": { + "name": "committer_email", + "type": "text", + "primaryKey": false, + "notNull": false, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + } + }, + "indexes": { + "merge_request_commits_external_id_idx": { + "name": "merge_request_commits_external_id_idx", + "columns": [ + "external_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "merge_request_diffs": { + "name": "merge_request_diffs", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "merge_request_id": { + "name": "merge_request_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "new_path": { + "name": "new_path", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "old_path": { + "name": "old_path", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "a_mode": { + "name": "a_mode", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "b_mode": { + "name": "b_mode", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "new_file": { + "name": "new_file", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "renamed_file": { + "name": "renamed_file", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "deleted_file": { + "name": "deleted_file", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "diff": { + "name": "diff", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + } + }, + "indexes": { + "diffs_merge_request_id_newPath_idx": { + "name": "diffs_merge_request_id_newPath_idx", + "columns": [ + "merge_request_id", + "new_path" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "merge_requests": { + "name": "merge_requests", + "columns": { + "id": { + "name": "id", + "type": "integer", + "primaryKey": true, + "notNull": true, + "autoincrement": false + }, + "external_id": { + "name": "external_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "merge_request_id": { + "name": "merge_request_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "repository_id": { + "name": "repository_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + } + }, + "indexes": { + "merge_requests_external_id_idx": { + "name": "merge_requests_external_id_idx", + "columns": [ + "external_id" + ], + "isUnique": true + } + }, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, "namespaces": { "name": "namespaces", "columns": { @@ -27,6 +370,22 @@ "primaryKey": false, "notNull": true, "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" } }, "indexes": { @@ -58,6 +417,29 @@ "primaryKey": false, "notNull": true, "autoincrement": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" } }, "indexes": { @@ -72,6 +454,52 @@ "foreignKeys": {}, "compositePrimaryKeys": {}, "uniqueConstraints": {} + }, + "repositories_to_members": { + "name": "repositories_to_members", + "columns": { + "repository_id": { + "name": "repository_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "member_id": { + "name": "member_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "autoincrement": false + }, + "created_at": { + "name": "created_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + }, + "updated_at": { + "name": "updated_at", + "type": "integer", + "primaryKey": false, + "notNull": false, + "autoincrement": false, + "default": "CURRENT_TIMESTAMP" + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": { + "repositories_to_members_repository_id_member_id_pk": { + "columns": [ + "member_id", + "repository_id" + ] + } + }, + "uniqueConstraints": {} } }, "enums": {}, diff --git a/migrations/extract/meta/0001_snapshot.json b/migrations/extract/meta/0001_snapshot.json deleted file mode 100644 index b0fc84a08..000000000 --- a/migrations/extract/meta/0001_snapshot.json +++ /dev/null @@ -1,392 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "a89d4156-ecbd-4e33-b823-372c918503f0", - "prevId": "fd3ad6b7-efbc-47e8-a91a-c88b20049a2d", - "tables": { - "members": { - "name": "members", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "members_external_id_idx": { - "name": "members_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "merge_request_commits": { - "name": "merge_request_commits", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "merge_request_id": { - "name": "merge_request_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "authored_date": { - "name": "authored_date", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "committed_date": { - "name": "committed_date", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "message": { - "name": "message", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "author_name": { - "name": "author_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "author_email": { - "name": "author_email", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "committer_name": { - "name": "committer_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "committer_email": { - "name": "committer_email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "merge_request_commits_external_id_idx": { - "name": "merge_request_commits_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "merge_request_diffs": { - "name": "merge_request_diffs", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "merge_request_id": { - "name": "merge_request_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "new_path": { - "name": "new_path", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "old_path": { - "name": "old_path", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "a_mode": { - "name": "a_mode", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "b_mode": { - "name": "b_mode", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "new_file": { - "name": "new_file", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "renamed_file": { - "name": "renamed_file", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "deleted_file": { - "name": "deleted_file", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "diff": { - "name": "diff", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "diffs_merge_request_id_newPath_idx": { - "name": "diffs_merge_request_id_newPath_idx", - "columns": [ - "merge_request_id", - "new_path" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "merge_requests": { - "name": "merge_requests", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "merge_request_id": { - "name": "merge_request_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "repository_id": { - "name": "repository_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "merge_requests_external_id_idx": { - "name": "merge_requests_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "namespaces": { - "name": "namespaces", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "namespaces_external_id_idx": { - "name": "namespaces_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "repositories": { - "name": "repositories", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "repositories_external_id_idx": { - "name": "repositories_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "repositories_to_members": { - "name": "repositories_to_members", - "columns": { - "repository_id": { - "name": "repository_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "member_id": { - "name": "member_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": { - "repositories_to_members_repository_id_member_id_pk": { - "columns": [ - "member_id", - "repository_id" - ] - } - }, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/migrations/extract/meta/0002_snapshot.json b/migrations/extract/meta/0002_snapshot.json deleted file mode 100644 index 6c2a24d79..000000000 --- a/migrations/extract/meta/0002_snapshot.json +++ /dev/null @@ -1,399 +0,0 @@ -{ - "version": "5", - "dialect": "sqlite", - "id": "fe237ba1-c2a4-4363-8541-1a1857fd7a97", - "prevId": "a89d4156-ecbd-4e33-b823-372c918503f0", - "tables": { - "members": { - "name": "members", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "username": { - "name": "username", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "members_external_id_idx": { - "name": "members_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "merge_request_commits": { - "name": "merge_request_commits", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "merge_request_id": { - "name": "merge_request_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "created_at": { - "name": "created_at", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "authored_date": { - "name": "authored_date", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "committed_date": { - "name": "committed_date", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "title": { - "name": "title", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "message": { - "name": "message", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "author_name": { - "name": "author_name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "author_email": { - "name": "author_email", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "committer_name": { - "name": "committer_name", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - }, - "committer_email": { - "name": "committer_email", - "type": "text", - "primaryKey": false, - "notNull": false, - "autoincrement": false - } - }, - "indexes": { - "merge_request_commits_external_id_idx": { - "name": "merge_request_commits_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "merge_request_diffs": { - "name": "merge_request_diffs", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "merge_request_id": { - "name": "merge_request_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "new_path": { - "name": "new_path", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "old_path": { - "name": "old_path", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "a_mode": { - "name": "a_mode", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "b_mode": { - "name": "b_mode", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "new_file": { - "name": "new_file", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "renamed_file": { - "name": "renamed_file", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "deleted_file": { - "name": "deleted_file", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "diff": { - "name": "diff", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "diffs_merge_request_id_newPath_idx": { - "name": "diffs_merge_request_id_newPath_idx", - "columns": [ - "merge_request_id", - "new_path" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "merge_requests": { - "name": "merge_requests", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "merge_request_id": { - "name": "merge_request_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "repository_id": { - "name": "repository_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "merge_requests_external_id_idx": { - "name": "merge_requests_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "namespaces": { - "name": "namespaces", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "namespaces_external_id_idx": { - "name": "namespaces_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "repositories": { - "name": "repositories", - "columns": { - "id": { - "name": "id", - "type": "integer", - "primaryKey": true, - "notNull": true, - "autoincrement": false - }, - "external_id": { - "name": "external_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "name": { - "name": "name", - "type": "text", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": { - "repositories_external_id_idx": { - "name": "repositories_external_id_idx", - "columns": [ - "external_id" - ], - "isUnique": true - } - }, - "foreignKeys": {}, - "compositePrimaryKeys": {}, - "uniqueConstraints": {} - }, - "repositories_to_members": { - "name": "repositories_to_members", - "columns": { - "repository_id": { - "name": "repository_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - }, - "member_id": { - "name": "member_id", - "type": "integer", - "primaryKey": false, - "notNull": true, - "autoincrement": false - } - }, - "indexes": {}, - "foreignKeys": {}, - "compositePrimaryKeys": { - "repositories_to_members_repository_id_member_id_pk": { - "columns": [ - "member_id", - "repository_id" - ] - } - }, - "uniqueConstraints": {} - } - }, - "enums": {}, - "_meta": { - "schemas": {}, - "tables": {}, - "columns": {} - } -} \ No newline at end of file diff --git a/migrations/extract/meta/_journal.json b/migrations/extract/meta/_journal.json index 5b22aaebe..8f04009e1 100644 --- a/migrations/extract/meta/_journal.json +++ b/migrations/extract/meta/_journal.json @@ -5,22 +5,8 @@ { "idx": 0, "version": "5", - "when": 1690216755629, - "tag": "0000_deep_adam_destine", - "breakpoints": true - }, - { - "idx": 1, - "version": "5", - "when": 1690531910887, - "tag": "0001_wealthy_medusa", - "breakpoints": true - }, - { - "idx": 2, - "version": "5", - "when": 1690804131705, - "tag": "0002_even_marvel_boy", + "when": 1692191270447, + "tag": "0000_purple_selene", "breakpoints": true } ] diff --git a/packages/schemas/extract/src/members.ts b/packages/schemas/extract/src/members.ts index 6de1dcaf7..3941f1ef6 100644 --- a/packages/schemas/extract/src/members.ts +++ b/packages/schemas/extract/src/members.ts @@ -1,4 +1,5 @@ import type { InferModel } from 'drizzle-orm'; +import { sql } from 'drizzle-orm'; import { sqliteTable, text, integer, uniqueIndex } from 'drizzle-orm/sqlite-core'; import { createInsertSchema, createSelectSchema } from 'drizzle-zod'; @@ -7,6 +8,8 @@ export const members = sqliteTable('members', { externalId: integer('external_id').notNull(), name: text('name').notNull(), username: text('username').notNull(), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (members) => ({ uniqueGitlabId: uniqueIndex('members_external_id_idx').on(members.externalId), })); diff --git a/packages/schemas/extract/src/merge-request-commits.ts b/packages/schemas/extract/src/merge-request-commits.ts index 69961d2b0..49db4b53d 100644 --- a/packages/schemas/extract/src/merge-request-commits.ts +++ b/packages/schemas/extract/src/merge-request-commits.ts @@ -1,4 +1,5 @@ import type { InferModel } from 'drizzle-orm'; +import { sql } from 'drizzle-orm'; import { sqliteTable, text, integer, uniqueIndex } from 'drizzle-orm/sqlite-core'; export const mergeRequestCommits = sqliteTable('merge_request_commits', { @@ -6,7 +7,7 @@ export const mergeRequestCommits = sqliteTable('merge_request_commits', { /* Gitlab -> iid */ mergeRequestId: integer('merge_request_id').notNull(), externalId: text('external_id').notNull(), - createdAt: text('created_at').notNull(), + mergeRequestCreatedAt: text('merge_request_created_at').notNull(), authoredDate: text('authored_date'), committedDate: text('committed_date'), title: text('title').notNull(), @@ -15,6 +16,8 @@ export const mergeRequestCommits = sqliteTable('merge_request_commits', { authorEmail: text('author_email').notNull(), committerName: text('committer_name'), committerEmail: text('committer_email'), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (commits) => ({ uniqueExternalId: uniqueIndex('merge_request_commits_external_id_idx').on(commits.externalId), })); diff --git a/packages/schemas/extract/src/merge-request-diffs.ts b/packages/schemas/extract/src/merge-request-diffs.ts index cfecc6d31..9757247f1 100644 --- a/packages/schemas/extract/src/merge-request-diffs.ts +++ b/packages/schemas/extract/src/merge-request-diffs.ts @@ -1,4 +1,5 @@ import type { InferModel } from 'drizzle-orm'; +import { sql } from 'drizzle-orm'; import { sqliteTable, text, integer, uniqueIndex } from 'drizzle-orm/sqlite-core'; export const mergeRequestDiffs = sqliteTable('merge_request_diffs', { @@ -13,6 +14,8 @@ export const mergeRequestDiffs = sqliteTable('merge_request_diffs', { renamedFile: integer('renamed_file', { mode: 'boolean' }).notNull(), deletedFile: integer('deleted_file', { mode: 'boolean' }).notNull(), diff: text('diff').notNull(), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (diffs) => ({ uniqueMergeRequestId: uniqueIndex('diffs_merge_request_id_newPath_idx').on(diffs.mergeRequestId, diffs.newPath), })); diff --git a/packages/schemas/extract/src/merge-requests.ts b/packages/schemas/extract/src/merge-requests.ts index 5b1cbe5aa..0340f0572 100644 --- a/packages/schemas/extract/src/merge-requests.ts +++ b/packages/schemas/extract/src/merge-requests.ts @@ -1,4 +1,5 @@ import type { InferModel } from "drizzle-orm"; +import { sql } from "drizzle-orm"; import { integer, sqliteTable, uniqueIndex } from "drizzle-orm/sqlite-core"; import { createInsertSchema } from "drizzle-zod"; @@ -11,6 +12,8 @@ export const mergeRequests = sqliteTable( /* Gitlab -> iid, GitHub -> number */ mergeRequestId: integer("merge_request_id").notNull(), repositoryId: integer("repository_id").notNull(), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (mergeRequests) => ({ uniqueExternalId: uniqueIndex("merge_requests_external_id_idx").on( diff --git a/packages/schemas/extract/src/namespaces.ts b/packages/schemas/extract/src/namespaces.ts index bdf2117ae..2ccf7d19f 100644 --- a/packages/schemas/extract/src/namespaces.ts +++ b/packages/schemas/extract/src/namespaces.ts @@ -1,4 +1,5 @@ import type { InferModel } from 'drizzle-orm'; +import { sql } from 'drizzle-orm'; import { sqliteTable, text, integer, uniqueIndex } from 'drizzle-orm/sqlite-core'; import { createInsertSchema, createSelectSchema } from 'drizzle-zod'; @@ -6,6 +7,8 @@ export const namespaces = sqliteTable('namespaces', { id: integer('id').primaryKey(), externalId: integer('external_id').notNull(), name: text('name').notNull(), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (namespaces) => ({ uniqueExternalId: uniqueIndex('namespaces_external_id_idx').on(namespaces.externalId), })); diff --git a/packages/schemas/extract/src/repositories-to-members.ts b/packages/schemas/extract/src/repositories-to-members.ts index e5a2c11cc..f639c79ec 100644 --- a/packages/schemas/extract/src/repositories-to-members.ts +++ b/packages/schemas/extract/src/repositories-to-members.ts @@ -1,9 +1,12 @@ import type { InferModel } from 'drizzle-orm'; +import { sql } from 'drizzle-orm'; import { sqliteTable, integer, primaryKey } from 'drizzle-orm/sqlite-core'; export const repositoriesToMembers = sqliteTable('repositories_to_members', { repositoryId: integer('repository_id').notNull(), memberId: integer('member_id').notNull(), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (repositoriesToMembers) => ({ pk: primaryKey(repositoriesToMembers.repositoryId, repositoriesToMembers.memberId) })); diff --git a/packages/schemas/extract/src/repositories.ts b/packages/schemas/extract/src/repositories.ts index 7aecac775..5344aa30f 100644 --- a/packages/schemas/extract/src/repositories.ts +++ b/packages/schemas/extract/src/repositories.ts @@ -1,4 +1,5 @@ import type { InferModel } from 'drizzle-orm'; +import { sql } from 'drizzle-orm'; import { sqliteTable, integer,text, uniqueIndex } from 'drizzle-orm/sqlite-core'; import { createInsertSchema, createSelectSchema } from 'drizzle-zod'; @@ -6,6 +7,8 @@ export const repositories = sqliteTable('repositories', { id: integer('id').primaryKey(), externalId: integer('external_id').notNull(), name: text('name').notNull(), + createdAt: integer('created_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), + updatedAt: integer('updated_at', { mode: 'timestamp' }).default(sql`CURRENT_TIMESTAMP`), }, (projects) => ({ uniqueExternalId: uniqueIndex('repositories_external_id_idx').on(projects.externalId), }));