initial commit

Signed-off-by: Pin <Pin>
This commit is contained in:
Pin
2021-01-31 16:45:18 -05:00
committed by Pin
commit ab66454020
11 changed files with 230 additions and 0 deletions

60
db/dbmigrate/migrate.go Normal file
View File

@@ -0,0 +1,60 @@
package main
import (
"log"
_ "github.com/lib/pq"
"database/sql"
"os"
"fmt"
_ "github.com/joho/godotenv/autoload"
_ "github.com/go-sql-driver/mysql"
)
type DogRow struct {
Id int
Author string
Title string
Format string
Hash string
Type string
}
func checkerr(err error) {
if err != nil {
log.Println(err)
}
}
func dsn(dbName string) string {
return fmt.Sprintf("%s:%s@tcp(%s)/%s", os.Getenv("MYSQLUSERNAME"), os.Getenv("MYSQLPASS"), os.Getenv("MYSQLHOSTNAME"), dbName)
}
func main() {
log.Println("Log")
psqlInfo := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable",
os.Getenv("HOST"), os.Getenv("PORT"), os.Getenv("DBUSER"), os.Getenv("PASSWD"), os.Getenv("DBNAME"))
pgdb, err := sql.Open("postgres", psqlInfo)
checkerr(err)
mysqldb, err := sql.Open("mysql", dsn(os.Getenv("MYSQLDBNAME")))
checkerr(err)
rows, err := mysqldb.Query(`select * from pug;`)
checkerr(err)
defer rows.Close()
for rows.Next() {
var rowsel DogRow
if err := rows.Scan(&rowsel.Id, &rowsel.Author, &rowsel.Title, &rowsel.Format, &rowsel.Hash, &rowsel.Type); err != nil {
log.Fatal(err)
}
_, err = pgdb.Exec(`insert into dog_pictures (breed_id, author, title, picture_format,
picture_hash, picture_url) values ((select breed_id from breed_manifest where breed = $1),
$2, $3, $4, $5, $6)`, rowsel.Type, rowsel.Author, rowsel.Title, rowsel.Format, rowsel.Hash,
os.Getenv("DOGURL") + rowsel.Type + "/" + rowsel.Hash + "." + rowsel.Format)
if err != nil {
log.Println(rowsel.Hash)
}
}
}