В каталоге у меня есть файл конфигурации с моими переменными в БД.
Этот файл (db/database.ini
) выглядит следующим образом:
[PostgreSQL]
host=localhost
database=...
user=postgres
password=...
У меня есть другой файл (db/create_stmts.sql
), где у меня есть все мои необработанные операторы создания таблиц, и я пытаюсьпоэкспериментируйте с использованием Makefile, чтобы иметь такую команду:
make create-db from_file=db/create_stmts.sql
Чтобы не повторяться, я подумал о tail
передаче переменных db/database.ini
вфайл, который я затем поставлю, создав переменные оболочки для передачи psql
в файле make.
Вот мой план:
make-db:
# from_file: path to .sql file with all create statements to create the database where to insert
# how to run: make create-db from_file={insert path to sql file}
file_path=$(PWD)/file.sh
tail -n4 db/database.ini > file.sh && . $(file_path)
# -U: --user
# -d: --database
# -q: --quiet
# -f: --file
psql -U $(user) -d $(database) -q -f $(from_file) && rm file.sh
, которым я управляю: make create-db from_file=db/create_stmts.sql
Который дает мне это сообщение - из которого я вроде понимаю, что источник просто не сделалработа.
#from_file: path to .sql file with all create statements to create the database where to insert
# how to run: make create-db from_file={insert path to sql file}
file_path=/home/gabriele/Desktop/TIUK/companies-house/file.sh
tail -n4 db/database.ini > file.sh && .
# -U: --user
# -d: --database
# -q: --quiet
# -f: --file
psql -U -d -q -f db/schema_tables.sql && rm file.sh
psql: FATAL: Peer authentication failed for user "-d"
Makefile:3: recipe for target 'create-db' failed
make: *** [create-db] Error 2
Любая помощь?