add offline import mode

In offline mode no attempts are made to download data from the internet.
At the moment that only concerns the computation of the database date.
It contacts the main API to get the date.
This commit is contained in:
Sarah Hoffmann 2022-05-11 15:03:02 +02:00
parent a7a5f0161f
commit dc6c4bf22e

View File

@ -53,6 +53,8 @@ class SetupAll:
group.add_argument('--no-updates', action='store_true', group.add_argument('--no-updates', action='store_true',
help="Do not keep tables that are only needed for " help="Do not keep tables that are only needed for "
"updating the database later") "updating the database later")
group.add_argument('--offline', action='store_true',
help="Do not attempt to load any additional data from the internet")
group = parser.add_argument_group('Expert options') group = parser.add_argument_group('Expert options')
group.add_argument('--ignore-errors', action='store_true', group.add_argument('--ignore-errors', action='store_true',
help='Continue import even when errors in SQL are present') help='Continue import even when errors in SQL are present')
@ -139,7 +141,7 @@ class SetupAll:
with connect(args.config.get_libpq_dsn()) as conn: with connect(args.config.get_libpq_dsn()) as conn:
refresh.setup_website(webdir, args.config, conn) refresh.setup_website(webdir, args.config, conn)
SetupAll._set_database_date(args.config.get_libpq_dsn()) SetupAll._finalize_database(args.config.get_libpq_dsn(), args.offline)
return 0 return 0
@ -202,10 +204,11 @@ class SetupAll:
@staticmethod @staticmethod
def _set_database_date(dsn): def _finalize_database(dsn, offline):
""" Determine the database date and set the status accordingly. """ Determine the database date and set the status accordingly.
""" """
with connect(dsn) as conn: with connect(dsn) as conn:
if not offline:
try: try:
dbdate = status.compute_database_date(conn) dbdate = status.compute_database_date(conn)
status.set_status(conn, dbdate) status.set_status(conn, dbdate)