Selaa lähdekoodia

Add `--run-background-updates` option to `update_database` script. (#10954)

Signed-off-by: Nick Barrett <nick@beeper.com>
tags/v1.45.0rc1
Nick Barrett 2 vuotta sitten
committed by GitHub
vanhempi
commit
c80878d22a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 muutettua tiedostoa jossa 46 lisäystä ja 21 poistoa
  1. +2
    -2
      .ci/scripts/test_synapse_port_db.sh
  2. +1
    -0
      changelog.d/10954.feature
  3. +7
    -0
      debian/changelog
  4. +1
    -0
      debian/matrix-synapse-py3.links
  5. +1
    -1
      scripts-dev/lint.sh
  6. +1
    -1
      scripts-dev/make_full_schema.sh
  7. +32
    -16
      scripts/update_synapse_database
  8. +1
    -1
      tox.ini

+ 2
- 2
.ci/scripts/test_synapse_port_db.sh Näytä tiedosto

@@ -25,7 +25,7 @@ python -m synapse.app.homeserver --generate-keys -c .ci/sqlite-config.yaml
echo "--- Prepare test database" echo "--- Prepare test database"


# Make sure the SQLite3 database is using the latest schema and has no pending background update. # Make sure the SQLite3 database is using the latest schema and has no pending background update.
scripts-dev/update_database --database-config .ci/sqlite-config.yaml
scripts/update_synapse_database --database-config .ci/sqlite-config.yaml --run-background-updates


# Create the PostgreSQL database. # Create the PostgreSQL database.
.ci/scripts/postgres_exec.py "CREATE DATABASE synapse" .ci/scripts/postgres_exec.py "CREATE DATABASE synapse"
@@ -46,7 +46,7 @@ echo "--- Prepare empty SQLite database"
# we do this by deleting the sqlite db, and then doing the same again. # we do this by deleting the sqlite db, and then doing the same again.
rm .ci/test_db.db rm .ci/test_db.db


scripts-dev/update_database --database-config .ci/sqlite-config.yaml
scripts/update_synapse_database --database-config .ci/sqlite-config.yaml --run-background-updates


# re-create the PostgreSQL database. # re-create the PostgreSQL database.
.ci/scripts/postgres_exec.py \ .ci/scripts/postgres_exec.py \


+ 1
- 0
changelog.d/10954.feature Näytä tiedosto

@@ -0,0 +1 @@
Include an `update_synapse_database` script in the distribution. Contributed by @Fizzadar at Beeper.

+ 7
- 0
debian/changelog Näytä tiedosto

@@ -1,3 +1,10 @@
matrix-synapse-py3 (1.44.0~rc2+nmu1) UNRELEASED; urgency=medium

[ Nick @ Beeper ]
* Include an `update_synapse_database` script in the distribution.

-- root <root@f7b8a71098d3> Mon, 04 Oct 2021 13:29:26 +0000

matrix-synapse-py3 (1.44.0) stable; urgency=medium matrix-synapse-py3 (1.44.0) stable; urgency=medium


* New synapse release 1.44.0. * New synapse release 1.44.0.


+ 1
- 0
debian/matrix-synapse-py3.links Näytä tiedosto

@@ -3,3 +3,4 @@ opt/venvs/matrix-synapse/bin/register_new_matrix_user usr/bin/register_new_matri
opt/venvs/matrix-synapse/bin/synapse_port_db usr/bin/synapse_port_db opt/venvs/matrix-synapse/bin/synapse_port_db usr/bin/synapse_port_db
opt/venvs/matrix-synapse/bin/synapse_review_recent_signups usr/bin/synapse_review_recent_signups opt/venvs/matrix-synapse/bin/synapse_review_recent_signups usr/bin/synapse_review_recent_signups
opt/venvs/matrix-synapse/bin/synctl usr/bin/synctl opt/venvs/matrix-synapse/bin/synctl usr/bin/synctl
opt/venvs/matrix-synapse/bin/update_synapse_database usr/bin/update_synapse_database

+ 1
- 1
scripts-dev/lint.sh Näytä tiedosto

@@ -90,10 +90,10 @@ else
"scripts/hash_password" "scripts/hash_password"
"scripts/register_new_matrix_user" "scripts/register_new_matrix_user"
"scripts/synapse_port_db" "scripts/synapse_port_db"
"scripts/update_synapse_database"
"scripts-dev" "scripts-dev"
"scripts-dev/build_debian_packages" "scripts-dev/build_debian_packages"
"scripts-dev/sign_json" "scripts-dev/sign_json"
"scripts-dev/update_database"
"contrib" "synctl" "setup.py" "synmark" "stubs" ".ci" "contrib" "synctl" "setup.py" "synmark" "stubs" ".ci"
) )
fi fi


+ 1
- 1
scripts-dev/make_full_schema.sh Näytä tiedosto

@@ -147,7 +147,7 @@ python -m synapse.app.homeserver --generate-keys -c "$SQLITE_CONFIG"


# Make sure the SQLite3 database is using the latest schema and has no pending background update. # Make sure the SQLite3 database is using the latest schema and has no pending background update.
echo "Running db background jobs..." echo "Running db background jobs..."
scripts-dev/update_database --database-config "$SQLITE_CONFIG"
scripts/update_synapse_database --database-config --run-background-updates "$SQLITE_CONFIG"


# Create the PostgreSQL database. # Create the PostgreSQL database.
echo "Creating postgres database..." echo "Creating postgres database..."


scripts-dev/update_database → scripts/update_synapse_database Näytä tiedosto

@@ -42,10 +42,29 @@ class MockHomeserver(HomeServer):
self.version_string = "Synapse/" + get_version_string(synapse) self.version_string = "Synapse/" + get_version_string(synapse)




if __name__ == "__main__":
def run_background_updates(hs):
store = hs.get_datastore()

async def run_background_updates():
await store.db_pool.updates.run_background_updates(sleep=False)
# Stop the reactor to exit the script once every background update is run.
reactor.stop()

def run():
# Apply all background updates on the database.
defer.ensureDeferred(
run_as_background_process("background_updates", run_background_updates)
)

reactor.callWhenRunning(run)

reactor.run()


def main():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description=( description=(
"Updates a synapse database to the latest schema and runs background updates"
"Updates a synapse database to the latest schema and optionally runs background updates"
" on it." " on it."
) )
) )
@@ -54,7 +73,13 @@ if __name__ == "__main__":
"--database-config", "--database-config",
type=argparse.FileType("r"), type=argparse.FileType("r"),
required=True, required=True,
help="A database config file for either a SQLite3 database or a PostgreSQL one.",
help="Synapse configuration file, giving the details of the database to be updated",
)
parser.add_argument(
"--run-background-updates",
action="store_true",
required=False,
help="run background updates after upgrading the database schema",
) )


args = parser.parse_args() args = parser.parse_args()
@@ -82,19 +107,10 @@ if __name__ == "__main__":
# Setup instantiates the store within the homeserver object and updates the # Setup instantiates the store within the homeserver object and updates the
# DB. # DB.
hs.setup() hs.setup()
store = hs.get_datastore()


async def run_background_updates():
await store.db_pool.updates.run_background_updates(sleep=False)
# Stop the reactor to exit the script once every background update is run.
reactor.stop()
if args.run_background_updates:
run_background_updates(hs)


def run():
# Apply all background updates on the database.
defer.ensureDeferred(
run_as_background_process("background_updates", run_background_updates)
)


reactor.callWhenRunning(run)

reactor.run()
if __name__ == "__main__":
main()

+ 1
- 1
tox.ini Näytä tiedosto

@@ -41,10 +41,10 @@ lint_targets =
scripts/hash_password scripts/hash_password
scripts/register_new_matrix_user scripts/register_new_matrix_user
scripts/synapse_port_db scripts/synapse_port_db
scripts/update_synapse_database
scripts-dev scripts-dev
scripts-dev/build_debian_packages scripts-dev/build_debian_packages
scripts-dev/sign_json scripts-dev/sign_json
scripts-dev/update_database
stubs stubs
contrib contrib
synctl synctl


Ladataan…
Peruuta
Tallenna