Мне нужен совет по созданию сценария, чтобы помочь мне с повторяющимися задачами, которые я все время выполняю в среде разработки. У меня есть сервер PostgreSQL, и так как я разрабатываю веб-приложение, мне нужно все время отбрасывать, создавать и заполнять некоторые таблицы, и это утомительный процесс. Поэтому мне нужно создать какой-нибудь скрипт bash, чтобы помочь мне в этом. В основном это повторяющиеся задачи, которые я выполняю все время из графического интерфейса pgAdmin:
#!/bin/sh
psql -u postgres -w // this line should connect to PostgreSQL asking for a password since I not found other way to pass the password on that line
DROP DATABASE sis_db; // drop the DB
CREATE DATABASE sis_db WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1; // create the DB
// Create some schemas on the DB ( I don't know if I should select the DB first)
CREATE SCHEMA nomencladores AUTHORIZATION postgres;
CREATE SCHEMA negocio AUTHORIZATION postgres;
CREATE SCHEMA usuarios_externos AUTHORIZATION postgres;
И, наконец, я должен загрузить около 10 файлов .sql
но не знаю, разрешает ли -filename
более одного файла одновременно. Мне нужен совет по поводу этого сценария bash, так как я не знаю, как его получить, кто-нибудь может мне помочь?
Обновление: первый подход сценария
Хорошо, проведя глубокое исследование, я пришел с этим решением, которое работает, но скучаю по некоторым вещам, которые мне тоже нужны. Я сделал этот скрипт:
#!/bin/sh
# kill all connections to the postgres server
echo "SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity where pg_stat_activity.datname='sis_db';" | psql -U postgres -w
# drop the DB
echo "DROP DATABASE sis_db;" | psql -U postgres -w
# create the DB
echo "CREATE DATABASE sis_db WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' CONNECTION LIMIT = -1;" | psql -U postgres -w
# create schemas
echo "CREATE SCHEMA nomencladores AUTHORIZATION postgres;" | psql -U postgres -d sis_db -w
echo "CREATE SCHEMA negocio AUTHORIZATION postgres;" | psql -U postgres -d sis_db -w
echo "CREATE SCHEMA usuarios_externos AUTHORIZATION postgres;" | psql -U postgres -d sis_db -w
Он будет использовать файл /root/.pgpass
который я создал и настроил. Сценарий сейчас работает так, как я хочу, но я не знаю, как добавить несколько файлов одновременно, например, после создания схем выполнить содержимое sql1.sql
, sql2.sql
и т.д., Любой помощь или совет?