Using postgresql

master
Chakib Benziane 5 years ago
parent 10949a9ba3
commit 38e55de611

@ -48,7 +48,7 @@ func (d *Database) Open() error {
log.Fatal("undefined DB_PASS env") log.Fatal("undefined DB_PASS env")
} }
dsn := fmt.Sprintf("%s:%s@%s/%s", user, pass, host, DBName) dsn := fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=disable", user, pass, host, DBName)
log.Printf("Opening SQL at %s\n", dsn) log.Printf("Opening SQL at %s\n", dsn)

@ -1,12 +1,12 @@
version: "3.4" version: "3.4"
volumes: volumes:
db: redis-db:
maria-conf:
postgresql: postgresql:
file-storage: file-storage:
#sqlite:
gocache: gocache:
#sqlite:
#maria-conf:
services: services:
app: app:
@ -16,7 +16,7 @@ services:
- GO111MODULE=on - GO111MODULE=on
- BIT4SAT_STORAGE_PATH=/storage - BIT4SAT_STORAGE_PATH=/storage
- GOPATH=/go - GOPATH=/go
- DB_HOST=maria - DB_HOST=postgres
- DB_USER=bit4sat - DB_USER=bit4sat
- DB_PASS=bit4sat - DB_PASS=bit4sat
- LN_CHARGE_API=10.192.122.10:9112 - LN_CHARGE_API=10.192.122.10:9112
@ -36,17 +36,17 @@ services:
working_dir: /src working_dir: /src
maria: #maria:
image: mariadb:latest #image: mariadb:latest
environment: #environment:
- MYSQL_ROOT_PASSWORD=pass #- MYSQL_ROOT_PASSWORD=pass
- MYSQL_DATABASE=bit4sat #- MYSQL_DATABASE=bit4sat
- MYSQL_USER=bit4sat #- MYSQL_USER=bit4sat
- MYSQL_PASSWORD=bit4sat #- MYSQL_PASSWORD=bit4sat
volumes: #volumes:
- db:/var/lib/mysql #- db:/var/lib/mysql
- maria-conf:/etc/mysql #- maria-conf:/etc/mysql
postgres: postgres:
image: postgres:11.2 image: postgres:11.2
environment: environment:
@ -63,7 +63,7 @@ services:
image: redis:alpine image: redis:alpine
volumes: volumes:
- db:/data - redis-db:/data
command: command:
- redis-server - redis-server

@ -18,21 +18,20 @@ var DB = db.DB
const ( const (
DBUploadSchema = ` DBUploadSchema = `
CREATE TABLE IF NOT EXISTS upload ( CREATE TABLE IF NOT EXISTS upload (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id serial PRIMARY KEY,
upload_id CHAR(27) NOT NULL, upload_id varchar(27) NOT NULL,
sha256 CHAR(64) NOT NULL, sha256 varchar(64) NOT NULL,
file_name CHAR(255) NOT NULL, file_name varchar(255) NOT NULL,
file_type CHAR(255) DEFAULT '', file_type varchar(255) DEFAULT '',
file_size INT NOT NULL, file_size integer NOT NULL,
file_ext CHAR(255) DEFAULT '', file_ext varchar(255) DEFAULT '',
status INT DEFAULT 0, status integer DEFAULT 0 REFERENCES upload_status(type),
FOREIGN KEY (status) REFERENCES upload_status(type),
UNIQUE (upload_id, sha256) UNIQUE (upload_id, sha256)
); );
` `
DBUploadView = ` DBUploadView = `
CREATE VIEW IF NOT EXISTS upload_with_status CREATE OR REPLACE VIEW upload_with_status
AS SELECT AS SELECT
upload.upload_id, upload.upload_id,
upload.sha256, upload.sha256,
@ -67,7 +66,7 @@ upload.status = upload_status.type
file_size, file_size,
file_ext, file_ext,
status status
FROM upload WHERE sha256 = ? AND upload_id = ?` FROM upload WHERE sha256 = $1 AND upload_id = $2`
) )
const ( const (
@ -189,9 +188,9 @@ func init() {
} }
// Populate status types // Populate status types
query := `INSERT INTO upload_status query := `INSERT INTO upload_status (type, status)
(type, status) VALUES(?,?) VALUES($1,$2) ON CONFLICT (type) DO UPDATE
ON DUPLICATE KEY UPDATE status = ?` SET status = $3`
for k, v := range UploadStatus { for k, v := range UploadStatus {
_, err := DB.Sql.Exec(query, k, v, v) _, err := DB.Sql.Exec(query, k, v, v)
if err != nil { if err != nil {

Loading…
Cancel
Save