Fix make_full_schema to create the db with the right options and user (#9931)

pull/9957/head
Richard van der Hoff 2021-05-07 14:01:57 +01:00 committed by GitHub
parent b65ecaff9b
commit 765473567c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 9 deletions

1
changelog.d/9931.misc Normal file
View File

@ -0,0 +1 @@
Minor fixes to the `make_full_schema.sh` script.

View File

@ -6,7 +6,7 @@
# It does so by having Synapse generate an up-to-date SQLite DB, then running # It does so by having Synapse generate an up-to-date SQLite DB, then running
# synapse_port_db to convert it to Postgres. It then dumps the contents of both. # synapse_port_db to convert it to Postgres. It then dumps the contents of both.
POSTGRES_HOST="localhost" export PGHOST="localhost"
POSTGRES_DB_NAME="synapse_full_schema.$$" POSTGRES_DB_NAME="synapse_full_schema.$$"
SQLITE_FULL_SCHEMA_OUTPUT_FILE="full.sql.sqlite" SQLITE_FULL_SCHEMA_OUTPUT_FILE="full.sql.sqlite"
@ -32,7 +32,7 @@ usage() {
while getopts "p:co:h" opt; do while getopts "p:co:h" opt; do
case $opt in case $opt in
p) p)
POSTGRES_USERNAME=$OPTARG export PGUSER=$OPTARG
;; ;;
c) c)
# Print all commands that are being executed # Print all commands that are being executed
@ -69,7 +69,7 @@ if [ ${#unsatisfied_requirements} -ne 0 ]; then
exit 1 exit 1
fi fi
if [ -z "$POSTGRES_USERNAME" ]; then if [ -z "$PGUSER" ]; then
echo "No postgres username supplied" echo "No postgres username supplied"
usage usage
exit 1 exit 1
@ -84,8 +84,9 @@ fi
# Create the output directory if it doesn't exist # Create the output directory if it doesn't exist
mkdir -p "$OUTPUT_DIR" mkdir -p "$OUTPUT_DIR"
read -rsp "Postgres password for '$POSTGRES_USERNAME': " POSTGRES_PASSWORD read -rsp "Postgres password for '$PGUSER': " PGPASSWORD
echo "" echo ""
export PGPASSWORD
# Exit immediately if a command fails # Exit immediately if a command fails
set -e set -e
@ -131,9 +132,9 @@ report_stats: false
database: database:
name: "psycopg2" name: "psycopg2"
args: args:
user: "$POSTGRES_USERNAME" user: "$PGUSER"
host: "$POSTGRES_HOST" host: "$PGHOST"
password: "$POSTGRES_PASSWORD" password: "$PGPASSWORD"
database: "$POSTGRES_DB_NAME" database: "$POSTGRES_DB_NAME"
# Suppress the key server warning. # Suppress the key server warning.
@ -150,7 +151,7 @@ scripts-dev/update_database --database-config "$SQLITE_CONFIG"
# Create the PostgreSQL database. # Create the PostgreSQL database.
echo "Creating postgres database..." echo "Creating postgres database..."
createdb $POSTGRES_DB_NAME createdb --lc-collate=C --lc-ctype=C --template=template0 "$POSTGRES_DB_NAME"
echo "Copying data from SQLite3 to Postgres with synapse_port_db..." echo "Copying data from SQLite3 to Postgres with synapse_port_db..."
if [ -z "$COVERAGE" ]; then if [ -z "$COVERAGE" ]; then
@ -181,7 +182,7 @@ DROP TABLE user_directory_search_docsize;
DROP TABLE user_directory_search_stat; DROP TABLE user_directory_search_stat;
" "
sqlite3 "$SQLITE_DB" <<< "$SQL" sqlite3 "$SQLITE_DB" <<< "$SQL"
psql $POSTGRES_DB_NAME -U "$POSTGRES_USERNAME" -w <<< "$SQL" psql "$POSTGRES_DB_NAME" -w <<< "$SQL"
echo "Dumping SQLite3 schema to '$OUTPUT_DIR/$SQLITE_FULL_SCHEMA_OUTPUT_FILE'..." echo "Dumping SQLite3 schema to '$OUTPUT_DIR/$SQLITE_FULL_SCHEMA_OUTPUT_FILE'..."
sqlite3 "$SQLITE_DB" ".dump" > "$OUTPUT_DIR/$SQLITE_FULL_SCHEMA_OUTPUT_FILE" sqlite3 "$SQLITE_DB" ".dump" > "$OUTPUT_DIR/$SQLITE_FULL_SCHEMA_OUTPUT_FILE"