Skip to content
Snippets Groups Projects
Commit 2e447142 authored by Erik Johnston's avatar Erik Johnston
Browse files

Make failure to run appropraite upgrade scripts more helpful.

parent 592ba14b
No related branches found
No related tags found
No related merge requests found
......@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from synapse.storage import prepare_database
from synapse.storage import prepare_database, UpgradeDatabaseException
from synapse.server import HomeServer
......@@ -228,8 +228,15 @@ def setup():
logger.info("Preparing database: %s...", db_name)
with sqlite3.connect(db_name) as db_conn:
prepare_database(db_conn)
try:
with sqlite3.connect(db_name) as db_conn:
prepare_database(db_conn)
except UpgradeDatabaseException:
sys.stderr.write(
"\nFailed to upgrade database.\n"
"Have you followed any instructions in UPGRADES.rst?\n"
)
sys.exit(1)
logger.info("Database prepared in %s.", db_name)
......
......@@ -526,6 +526,14 @@ def read_schema(schema):
return schema_file.read()
class PrepareDatabaseException(Exception):
pass
class UpgradeDatabaseException(PrepareDatabaseException):
pass
def prepare_database(db_conn):
""" Set up all the dbs. Since all the *.sql have IF NOT EXISTS, so we
don't have to worry about overwriting existing content.
......@@ -542,6 +550,10 @@ def prepare_database(db_conn):
"Cannot use this database as it is too " +
"new for the server to understand"
)
elif user_version < 10:
raise UpgradeDatabaseException(
"No delta for versions less than 10"
)
elif user_version < SCHEMA_VERSION:
logger.info(
"Upgrading database from version %d",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment