【解決】No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command
npx typeorm migration:generate -n CreateItem
を実行したら出た情報
npx typeorm migration:create -n CreateItem
を実行しろっていうけれど、それだとmigrationファイルは作られるけれど実行文が作られていないので意味がない。
試したことは
- npm run buld
で事前にmigrationファイルを作っておくこと
こういうのもしらみつぶしに見た
https://stackoverflow.com/questions/67490090/typeorm-no-changes-in-database-schema-were-found-cannot-generate-a-migration
でもそれを言われたままヒントがない
No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command
結局のところ
npx typeorm schema:drop
のコマンドで一回schemaをdropした。
query: SELECT * FROM current_schema()
query: CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
query: SHOW server_version;
query: START TRANSACTION
query: SHOW SERVER_VERSION
query: SELECT 'DROP VIEW IF EXISTS "' || schemaname || '"."' || viewname || '" CASCADE;' as "query" FROM "pg_views" WHERE "schemaname" IN (current_schema()) AND "viewname" NOT IN ('geography_columns', 'geometry_columns', 'raster_columns', 'raster_overviews')
query: SELECT 'DROP MATERIALIZED VIEW IF EXISTS "' || schemaname || '"."' || matviewname || '" CASCADE;' as "query" FROM "pg_matviews" WHERE "schemaname" IN (current_schema())
query: SELECT 'DROP TABLE IF EXISTS "' || schemaname || '"."' || tablename || '" CASCADE;' as "query" FROM "pg_tables" WHERE "schemaname" IN (current_schema()) AND "tablename" NOT IN ('spatial_ref_sys')
query: DROP TABLE IF EXISTS "public"."migrations" CASCADE;
query: DROP TABLE IF EXISTS "public"."typeorm_metadata" CASCADE;
query: DROP TABLE IF EXISTS "public"."item" CASCADE;
query: SELECT 'DROP TYPE IF EXISTS "' || n.nspname || '"."' || t.typname || '" CASCADE;' as "query" FROM "pg_type" "t" INNER JOIN "pg_enum" "e" ON "e"."enumtypid" = "t"."oid" INNER JOIN "pg_namespace" "n" ON "n"."oid" = "t"."typnamespace" WHERE "n"."nspname" IN (current_schema()) GROUP BY "n"."nspname", "t"."typname"
その後
npx typeorm migration:generate -n CreateItem
したら解決した
なので
npx typeorm migration:run
その後実行
❯ npx typeorm migration:run
query: SELECT * FROM current_schema()
query: CREATE EXTENSION IF NOT EXISTS "uuid-ossp"
query: SHOW server_version;
query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'migrations'
query: CREATE TABLE "migrations" ("id" SERIAL NOT NULL, "timestamp" bigint NOT NULL, "name" character varying NOT NULL, CONSTRAINT "PK_8c82d7f526340ab734260ea46be" PRIMARY KEY ("id"))
query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'typeorm_metadata'
query: CREATE TABLE "typeorm_metadata" ("type" character varying NOT NULL, "database" character varying, "schema" character varying, "table" character varying, "name" character varying, "value" text)
query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC
0 migrations are already loaded in the database.
1 migrations were found in the source code.
1 migrations are new migrations that needs to be executed.
query: START TRANSACTION
query: INSERT INTO "migrations"("timestamp", "name") VALUES ($1, $2) -- PARAMETERS: [1651496300283,"CreateItem1651496300283"]
Migration CreateItem1651496300283 has been executed successfully.