Golang + Vue + PostgreSQL #2


27.01.2022

У цьому прикладі: Все те саме, що і у попередньому прикладі, тільки з базою даних PostgreSQL.

Як переглянути цей приклад?

Підготовка PostgreSQL

  • Встановіть PostgreSQL (port 5432)
  • Для користувача postgres встановіть пароль postgres
  • Створіть базу даних з назвою test. Нічого в ній не робіть

База даних готова, тепер - запускаємо приклад.

Запуск прикладу Golang + Vue + PostgreSQL

Далі два варіанти:

Варіант 1 (Не потребує встановлення Golang та модулів):

  • Завантажте архів і розпакуйте його до будь-якої директорії на Вашому комп'ютері.
  • Запустіть бінарний файл 'main'. Зачекайте поки додаток створить все необхідне у базі даних.
  • Відкрийте браузер за посиланням http://localhost:5000/frontend/

Варіант 2 (потребує встановленого Golang):

  • Завантажте архів і розпакуйте його до будь-якої директорії на Вашому комп'ютері.
  • У директорії з файлом main.go виконайте команду go mod tidy
  • Запустіть додаток командою go run ./main.go. Зачекайте поки додаток створить все необхідне у базі даних.
  • Відкрийте браузер за посиланням http://localhost:5000/frontend/

login: admin
password: admin

Приємного перегляду.

P.S. Оскільки база даних пуста, в неї буде додано тестові дані. Для цього прикладу створюються тільки користувачі і групи, щоб Ви могли потрапити у додаток. Решту даних я не заповнював - було ліньки. Перевіркою чи є в базі дані і занесенням початкових даних займається функція models.CheckAndFill() - допилюйте, якщо треба.

Що треба зробити у коді для переходу з SQLite на PostgreSQL ?

Інформація для розробників

database.DBConn перевести на нову СУБД:

func initDatabase() {
	var err error

	///// Sqlite
	//database.DBConn, err = gorm.Open(sqlite.Open("db.sqlite"), &gorm.Config{})
	/////

	///// Postgres
	dsn := "host=localhost user=postgres password=postgres dbname=test port=5432 sslmode=disable TimeZone=Europe/Kiev"
	database.DBConn, err = gorm.Open(postgres.Open(dsn), &gorm.Config{})
	/////

	if err != nil {
		panic("Failed to connect database")
	}
	fmt.Println("Connection Opened to Database")
	database.DBConn.AutoMigrate(&models.Client{}, &models.Country{}, &models.Group{}, &models.Product{}, &models.Seller{}, &models.User{}, &models.Token{})
	fmt.Println("Database Migrated")

	//Fill the database with test data if the database is empty
	models.CheckAndFill()    
}

Я додав функцію models.CheckAndFill() для заповнення бази первинними даними. Але це не обов'язково.

Виконати команду:

    go mod tidy

Можна запускати приклад командою go run ./main.go

Як бачите, нам не довилося поглиблено вивчати PostgreSQL щоб зробити перший простий додаток. Звісно, подальший розвиток буде вимагати більш детального вивчення СУБД, але зверніть увагу - для переходу на нову СУБД нам майже нічого не довелося переписувати і косячити копатися ручками у базі.

Бажаю успіхів.

Web-dev склерозник
Коментарі:
FeelSoft говорить:
02.02.2022 23:01
по ссылке нет бинарника

andre говорить:
03.02.2022 08:57
Спасибо за замечание. Испраил.

Додати коментар
Code
* - обов'язкові поля

Архіви