From 406e463ebbd4f3aa05e0a5bf5639cd91e8c81d1a Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 19 Sep 2025 21:03:41 +0800 Subject: [PATCH 1/2] chore: init boilerplate code for golang-migrate --- services/user/cmd/migrate/main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 services/user/cmd/migrate/main.go diff --git a/services/user/cmd/migrate/main.go b/services/user/cmd/migrate/main.go new file mode 100644 index 00000000..91c23bfd --- /dev/null +++ b/services/user/cmd/migrate/main.go @@ -0,0 +1,24 @@ +package migrate + +import ( + "log" + + "github.com/golang-migrate/migrate/v4" + _ "github.com/golang-migrate/migrate/v4/database/postgres" + _ "github.com/golang-migrate/migrate/v4/source/file" +) + +// RunMigrations applies all migrations +func RunMigrations(databaseURL string, migrationsDir string) { + m, err := migrate.New("file://"+migrationsDir, databaseURL) + + if err != nil { + log.Fatal(err) + } + + if err := m.Up(); err != nil && err != migrate.ErrNoChange { + log.Fatal(err) + } + + log.Println("Migrations applied successfully!") +} From 43862cdfd56035f0c1ede06862547c6db7d8063e Mon Sep 17 00:00:00 2001 From: Jose Date: Fri, 19 Sep 2025 21:03:56 +0800 Subject: [PATCH 2/2] feat: add migration files for user database table --- .../user/migrations/000001_create_users_table.down.sql | 1 + services/user/migrations/000001_create_users_table.up.sql | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 services/user/migrations/000001_create_users_table.down.sql create mode 100644 services/user/migrations/000001_create_users_table.up.sql diff --git a/services/user/migrations/000001_create_users_table.down.sql b/services/user/migrations/000001_create_users_table.down.sql new file mode 100644 index 00000000..cc1f647d --- /dev/null +++ b/services/user/migrations/000001_create_users_table.down.sql @@ -0,0 +1 @@ +DROP TABLE users; diff --git a/services/user/migrations/000001_create_users_table.up.sql b/services/user/migrations/000001_create_users_table.up.sql new file mode 100644 index 00000000..dac7885e --- /dev/null +++ b/services/user/migrations/000001_create_users_table.up.sql @@ -0,0 +1,7 @@ +CREATE TABLE users ( + user_id SERIAL PRIMARY KEY, + username VARCHAR(50) UNIQUE NOT NULL, + email VARCHAR(255) UNIQUE NOT NULL, + password_hash VARCHAR(255) NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); \ No newline at end of file