См. git gist с инструкциями здесь
Запустите это:
psql -U postgres
ИЛИ
sudo -u postgres psql
в вашем терминале для входа в postgres
postgres=#
Run
CREATE USER new_username;
Примечание: замените имя new_us на пользователя, которого вы хотите создать, в вашем случае, который будет томом.
postgres=# CREATE USER new_username;
CREATE ROLE
Поскольку вы хотите, чтобы этот пользователь мог создавать БД, вам нужно изменить роль суперпользователя
postgres=# ALTER USER new_username SUPERUSER CREATEDB;
ALTER ROLE
. Чтобы подтвердить, все было успешно,
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
new_username | Superuser, Create DB | {}
postgres | Superuser, Create role, Create DB, Replication | {}
root | Superuser, Create role, Create DB | {}
postgres=#
Вы рассмотрели одну сторону проблемы - какому методу должно соответствовать лямбда-выражение. Что вы не учли, так это то, что происходит со всеми другими методами в интерфейсе.
Язык можно было бы указать так, чтобы лямбда-выражение соответствовало одному методу, а все остальные выкидывали RuntimeException
- но это было бы редко полезно. Рассмотрим, как будет использоваться Foo
. В результате вы получите объект, для которого вы могли бы вызывать только некоторые методы, и вы даже не знали бы , какие методы вы могли бы безопасно вызвать.
Если вы знаете, что вы собираетесь вызывать только один метод (например, count
в вашем примере), то это один автономный элемент функциональности, и он может быть инкапсулирован в отдельный интерфейс - в этот момент существующее лямбда-выражение функциональность в порядке. Если вы не знаете, что хотите использовать только один метод, то ваше предложение все равно не поможет.