You've already forked golang-saas-starter-kit
mirror of
https://github.com/raseels-repos/golang-saas-starter-kit.git
synced 2025-07-17 01:42:36 +02:00
updated schema readme
This commit is contained in:
@ -88,6 +88,7 @@ webapp:deploy:prod:
|
|||||||
TARGET_TYPE: 'service'
|
TARGET_TYPE: 'service'
|
||||||
TARGET_REF: 'web-app'
|
TARGET_REF: 'web-app'
|
||||||
AWS_USE_ROLE: 'true'
|
AWS_USE_ROLE: 'true'
|
||||||
|
#when: manual
|
||||||
|
|
||||||
webapi:build:prod:
|
webapi:build:prod:
|
||||||
<<: *build_tmpl
|
<<: *build_tmpl
|
||||||
@ -120,6 +121,7 @@ webapi:deploy:prod:
|
|||||||
TARGET_TYPE: 'service'
|
TARGET_TYPE: 'service'
|
||||||
TARGET_REF: 'web-api'
|
TARGET_REF: 'web-api'
|
||||||
AWS_USE_ROLE: 'true'
|
AWS_USE_ROLE: 'true'
|
||||||
|
#when: manual
|
||||||
|
|
||||||
ddlogscollector:build:prod:
|
ddlogscollector:build:prod:
|
||||||
<<: *build_tmpl
|
<<: *build_tmpl
|
||||||
@ -152,4 +154,5 @@ ddlogscollector:deploy:prod:
|
|||||||
TARGET_TYPE: 'function'
|
TARGET_TYPE: 'function'
|
||||||
TARGET_REF: 'ddlogscollector'
|
TARGET_REF: 'ddlogscollector'
|
||||||
AWS_USE_ROLE: 'true'
|
AWS_USE_ROLE: 'true'
|
||||||
|
#when: manual
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ func NewServiceConfig(serviceName string, cfg *devdeploy.Config) (ServiceConfig,
|
|||||||
Name: serviceName,
|
Name: serviceName,
|
||||||
DesiredCount: 1,
|
DesiredCount: 1,
|
||||||
DockerBuildContext: ".",
|
DockerBuildContext: ".",
|
||||||
ServiceDir: filepath.Join(cfg.ProjectRoot, "examples", serviceName),
|
ServiceDir: filepath.Join(cfg.ProjectRoot, "cmd", serviceName),
|
||||||
|
|
||||||
// Set the release tag for the image to use include env + service name + commit hash/tag.
|
// Set the release tag for the image to use include env + service name + commit hash/tag.
|
||||||
ReleaseTag: devdeploy.GitLabCiReleaseTag(cfg.Env, serviceName),
|
ReleaseTag: devdeploy.GitLabCiReleaseTag(cfg.Env, serviceName),
|
||||||
|
@ -1,68 +1,103 @@
|
|||||||
# SaaS Schema
|
|
||||||
|
|
||||||
Copyright 2019, Geeks Accelerator
|
|
||||||
accelerator@geeksinthewoods.com.com
|
|
||||||
|
|
||||||
|
|
||||||
## Description
|
schema
|
||||||
|
===
|
||||||
|
|
||||||
Service is handles the schema migration for the project.
|
_schema_ is a command line tool for local development that executes database migrations.
|
||||||
|
|
||||||
|
|
||||||
## Local Installation
|
<!-- toc -->
|
||||||
|
|
||||||
|
- [Overview](#overview)
|
||||||
|
- [Installation](#installation)
|
||||||
|
- [Usage](#usage)
|
||||||
|
* [Commands](#commands)
|
||||||
|
* [Examples](#examples)
|
||||||
|
- [Join us on Gopher Slack](#join-us-on-gopher-slack)
|
||||||
|
|
||||||
|
<!-- tocstop -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The command line tool that executes the database migrations defined in
|
||||||
|
[internal/schema](https://gitlab.com/geeks-accelerator/oss/saas-starter-kit/tree/master/internal/schema). This tool
|
||||||
|
should be used to test and deploy schema migrations against your local development database (hosted by docker).
|
||||||
|
|
||||||
|
For additional details regarding this tool, refer to
|
||||||
|
[build/cicd](https://gitlab.com/geeks-accelerator/oss/saas-starter-kit/tree/master/build/cicd#schema-migrations)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Make sure you have a working Go environment. Go version 1.2+ is supported. [See
|
||||||
|
the install instructions for Go](http://golang.org/doc/install.html).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
### Build
|
|
||||||
```bash
|
```bash
|
||||||
go build .
|
$ go run main.go [global options] command [command options] [arguments...]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Usage
|
### Global Options
|
||||||
```bash
|
|
||||||
./schema -h
|
|
||||||
|
|
||||||
Usage of ./schema
|
|
||||||
--env string <dev>
|
* Show help
|
||||||
--db_host string <127.0.0.1:5433>
|
|
||||||
--db_user string <postgres>
|
`--help, -h`
|
||||||
--db_pass string <postgres>
|
|
||||||
--db_database string <shared>
|
* Print the version
|
||||||
--db_driver string <postgres>
|
|
||||||
--db_timezone string <utc>
|
`--version, -v`
|
||||||
--db_disabletls bool <false>
|
|
||||||
|
### Commands
|
||||||
|
|
||||||
|
* `migrate` - Executes the database migrations defined in
|
||||||
|
[internal/schema](https://gitlab.com/geeks-accelerator/oss/saas-starter-kit/tree/master/internal/schema) for local
|
||||||
|
development. Default values are set for all command options that target the Postgres database running via
|
||||||
|
[docker compose](https://gitlab.com/geeks-accelerator/oss/saas-starter-kit/blob/master/docker-compose.yaml#L11).
|
||||||
|
Environment variables can be set as an alternative to passing in the command line options.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ go run main.go migrate [command options]
|
||||||
|
```
|
||||||
|
|
||||||
|
Options:
|
||||||
|
```bash
|
||||||
|
--env value target environment, one of [dev, stage, prod] (default: "dev") [$ENV]
|
||||||
|
--host value host (default: "127.0.0.1:5433") [$SCHEMA_DB_HOST]
|
||||||
|
--user value username (default: "postgres") [$SCHEMA_DB_USER]
|
||||||
|
--pass value password (default: "postgres") [$SCHEMA_DB_PASS]
|
||||||
|
--database value name of the default (default: "shared") [$SCHEMA_DB_DATABASE]
|
||||||
|
--driver value database drive to use for connection (default: "postgres") [$SCHEMA_DB_DRIVER]
|
||||||
|
--disable-tls disable TLS for the database connection [$SCHEMA_DB_DISABLE_TLS]
|
||||||
|
```
|
||||||
|
|
||||||
|
* `help` - Shows a list of commands
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ go run main.go help
|
||||||
|
```
|
||||||
|
|
||||||
|
Or for one command:
|
||||||
|
```bash
|
||||||
|
$ go run main.go help migrate
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
Execute the database migrations against the local Postgres database.
|
||||||
|
```bash
|
||||||
|
$ go run main.go migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
### Execution
|
|
||||||
Manually execute binary after build
|
|
||||||
```bash
|
|
||||||
./schema
|
|
||||||
Schema : 2019/05/25 08:20:08.152557 main.go:64: main : Started : Application Initializing version "develop"
|
|
||||||
Schema : 2019/05/25 08:20:08.152814 main.go:75: main : Config : {
|
|
||||||
"Env": "dev",
|
|
||||||
"DB": {
|
|
||||||
"Host": "127.0.0.1:5433",
|
|
||||||
"User": "postgres",
|
|
||||||
"Database": "shared",
|
|
||||||
"Driver": "postgres",
|
|
||||||
"Timezone": "utc",
|
|
||||||
"DisableTLS": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Schema : 2019/05/25 08:20:08.158270 sqlxmigrate.go:478: HasTable migrations - SELECT 1 FROM migrations
|
|
||||||
Schema : 2019/05/25 08:20:08.164275 sqlxmigrate.go:413: Migration SCHEMA_INIT - SELECT count(0) FROM migrations WHERE id = $1
|
|
||||||
Schema : 2019/05/25 08:20:08.166391 sqlxmigrate.go:368: Migration 20190522-01a - checking
|
|
||||||
Schema : 2019/05/25 08:20:08.166405 sqlxmigrate.go:413: Migration 20190522-01a - SELECT count(0) FROM migrations WHERE id = $1
|
|
||||||
Schema : 2019/05/25 08:20:08.168066 sqlxmigrate.go:375: Migration 20190522-01a - already ran
|
|
||||||
Schema : 2019/05/25 08:20:08.168078 sqlxmigrate.go:368: Migration 20190522-01b - checking
|
|
||||||
Schema : 2019/05/25 08:20:08.168084 sqlxmigrate.go:413: Migration 20190522-01b - SELECT count(0) FROM migrations WHERE id = $1
|
|
||||||
Schema : 2019/05/25 08:20:08.170297 sqlxmigrate.go:375: Migration 20190522-01b - already ran
|
|
||||||
Schema : 2019/05/25 08:20:08.170319 sqlxmigrate.go:368: Migration 20190522-01c - checking
|
|
||||||
Schema : 2019/05/25 08:20:08.170327 sqlxmigrate.go:413: Migration 20190522-01c - SELECT count(0) FROM migrations WHERE id = $1
|
|
||||||
Schema : 2019/05/25 08:20:08.172044 sqlxmigrate.go:375: Migration 20190522-01c - already ran
|
|
||||||
Schema : 2019/05/25 08:20:08.172831 main.go:130: main : Migrate : Completed
|
|
||||||
Schema : 2019/05/25 08:20:08.172935 main.go:131: main : Completed
|
|
||||||
```
|
|
||||||
|
|
||||||
Or alternative use the make file
|
## Join us on Gopher Slack
|
||||||
```bash
|
|
||||||
make run
|
If you are having problems installing, troubles getting the project running or would like to contribute, join the
|
||||||
```
|
channel #saas-starter-kit on [Gopher Slack](http://invite.slack.golangbridge.org/)
|
||||||
|
@ -59,41 +59,36 @@ func main() {
|
|||||||
Name: "env",
|
Name: "env",
|
||||||
Usage: fmt.Sprintf("target environment, one of [%s]",
|
Usage: fmt.Sprintf("target environment, one of [%s]",
|
||||||
strings.Join(webcontext.EnvNames, ", ")),
|
strings.Join(webcontext.EnvNames, ", ")),
|
||||||
Required: true,
|
Value: "dev",
|
||||||
EnvVar: "ENV",
|
EnvVar: "ENV",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "host",
|
Name: "host",
|
||||||
Usage: "host",
|
Usage: "host",
|
||||||
Required: true,
|
|
||||||
Value:"127.0.0.1:5433",
|
Value:"127.0.0.1:5433",
|
||||||
EnvVar: "SCHEMA_DB_HOST",
|
EnvVar: "SCHEMA_DB_HOST",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "user",
|
Name: "user",
|
||||||
Usage: "username",
|
Usage: "username",
|
||||||
Required: true,
|
|
||||||
Value: "postgres",
|
Value: "postgres",
|
||||||
EnvVar: "SCHEMA_DB_USER",
|
EnvVar: "SCHEMA_DB_USER",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "pass",
|
Name: "pass",
|
||||||
Usage: "password",
|
Usage: "password",
|
||||||
Required: true,
|
|
||||||
Value: "postgres",
|
Value: "postgres",
|
||||||
EnvVar: "SCHEMA_DB_PASS",
|
EnvVar: "SCHEMA_DB_PASS",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "database",
|
Name: "database",
|
||||||
Usage: "name of the default",
|
Usage: "name of the default",
|
||||||
Required: true,
|
|
||||||
Value: "shared",
|
Value: "shared",
|
||||||
EnvVar: "SCHEMA_DB_DATABASE",
|
EnvVar: "SCHEMA_DB_DATABASE",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "driver",
|
Name: "driver",
|
||||||
Usage: "database drive to use for connection",
|
Usage: "database drive to use for connection",
|
||||||
Required: true,
|
|
||||||
Value: "postgres",
|
Value: "postgres",
|
||||||
EnvVar: "SCHEMA_DB_DRIVER",
|
EnvVar: "SCHEMA_DB_DRIVER",
|
||||||
},
|
},
|
||||||
@ -124,7 +119,6 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("%+v", err)
|
log.Fatalf("%+v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// runMigrate executes the schema migration against the provided database connection details.
|
// runMigrate executes the schema migration against the provided database connection details.
|
||||||
|
Reference in New Issue
Block a user