Advertisement
Guest User

Untitled

a guest
Aug 18th, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "database/sql"
  5. "fmt"
  6. "log"
  7.  
  8. _ "github.com/bmizerany/pq"
  9. )
  10.  
  11. /* PostgreSQL in Go: Create table & Insert row
  12.  
  13. 1. Create the user and database from the psql cli, as an admin user:
  14.  
  15. % psql
  16. postgres=# CREATE USER alpha_user with password 'alpha01';
  17. postgres=# CREATE DATABASE alpha_db01 OWNER alpha_user;
  18.  
  19. */
  20.  
  21. // 2. This table will be created (If it doesnt already exist) so that we can insert some shit:
  22. var create_person_table = `
  23. CREATE TABLE IF NOT EXISTS person(
  24. id serial primary key,
  25. username varchar not null,
  26. first_name varchar,
  27. last_name varchar,
  28. email varchar
  29. );`
  30.  
  31. // 3. The admin user will be inserted
  32. var insert_admin_user = `
  33. INSERT INTO person(username, first_name, last_name, email)
  34. VALUES('admin', 'Admin', 'Administrator', 'admin@localhost');
  35. `
  36.  
  37. // 4. The db, which represents a database - not a database connection, is defined globally.
  38. var db sql.DB
  39.  
  40. func main() {
  41. dbuser := "alpha_user"
  42. dbname := "alpha_db01"
  43. dbpass := "alpha01"
  44. dbport := "5432"
  45.  
  46. db, err := sql.Open("postgres",
  47. fmt.Sprintf("dbname=%s user=%s password=%s port=%s sslmode=disable", dbname, dbuser, dbpass, dbport))
  48.  
  49. defer db.Close()
  50.  
  51. if err != nil {
  52. log.Panic(err)
  53. }
  54.  
  55. err = db.Ping()
  56. if err != nil {
  57. log.Panic(err)
  58. }
  59.  
  60. _, err = db.Exec(create_person_table)
  61. if err != nil {
  62. log.Panic(err)
  63. }
  64.  
  65. fmt.Println("Table created!")
  66.  
  67. _, err = db.Exec(insert_admin_user)
  68. if err != nil {
  69. log.Panic(err)
  70. }
  71.  
  72. fmt.Println("Admin user created")
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement