Автоматическая многопользовательская таблица, где пункт в Postgresql - PullRequest
0 голосов
/ 06 февраля 2020

Предпосылка: я новичок и пытаюсь понять.

Я из Rails и использую Postgresql.

Я переписываю все приложение в Golang (без магов c из Rails ActiveRecord, я использую go-pg (https://github.com/go-pg/pg) в качестве ORM).

Так что я не могу используйте пакеты типа https://github.com/ErwinM/acts_as_tenant или https://github.com/influitive/apartment.

Поскольку go-pg изначально не предлагает то, что я ищу (https://github.com/go-pg/pg/issues/1179) Я хотел бы понять, могу ли я сделать это непосредственно в БД.

Я хотел бы понять, могу ли я автоматически вставить предложение where в некоторые SELECT, используя значение tenant_id столбец таблицы tenants на основе user, который я использую для этого запроса.

Пример кода:

Что мне нужно, чтобы избежать этого:

var players []*models.Player
db.Model(&players).Order("id desc").Select()
return players, nil

на это:

var players []*models.Player
user := ctx.Value(auth.CTXKeyUser).(*models.User)
db.Model(&players).Order("id desc").Where("tenant_id = ?", user.TenantID).Select()
return players, nil
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...