mirror of
https://git.pleroma.social/pleroma/relay.git
synced 2024-11-23 15:08:00 +00:00
let setup command configure the database
This commit is contained in:
parent
ed25fcab35
commit
261dce50ab
|
@ -32,6 +32,7 @@ DEFAULTS = {
|
||||||
CATEGORY_NAMES = [
|
CATEGORY_NAMES = [
|
||||||
'general',
|
'general',
|
||||||
'database',
|
'database',
|
||||||
|
'sqlite',
|
||||||
'postgres',
|
'postgres',
|
||||||
'mysql'
|
'mysql'
|
||||||
]
|
]
|
||||||
|
@ -85,6 +86,9 @@ class Config(AppBase, dict):
|
||||||
|
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
|
if key in {'database', 'hostname', 'port', 'username', 'password'}:
|
||||||
|
key = f'{self.dbtype}_{key}'
|
||||||
|
|
||||||
if (self.is_docker and key in {'general_host', 'general_port'}) or value == '__DEFAULT__':
|
if (self.is_docker and key in {'general_host', 'general_port'}) or value == '__DEFAULT__':
|
||||||
value = DEFAULTS[key]
|
value = DEFAULTS[key]
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,8 @@ def cli(ctx, config):
|
||||||
@cli.command('convert')
|
@cli.command('convert')
|
||||||
@click.option('--old-config', '-o', help='path to the old relay config')
|
@click.option('--old-config', '-o', help='path to the old relay config')
|
||||||
def cli_convert(old_config):
|
def cli_convert(old_config):
|
||||||
|
'Convert an old relay.yaml and relay.jsonld to the the new formats'
|
||||||
|
|
||||||
with open(old_config or 'relay.yaml') as fd:
|
with open(old_config or 'relay.yaml') as fd:
|
||||||
config = yaml.load(fd.read(), Loader=yaml.SafeLoader)
|
config = yaml.load(fd.read(), Loader=yaml.SafeLoader)
|
||||||
ap = config.get('ap', {})
|
ap = config.get('ap', {})
|
||||||
|
@ -106,7 +108,10 @@ def cli_setup():
|
||||||
'Generate a new config'
|
'Generate a new config'
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
app.config['general_host'] = click.prompt('What domain will the relay be hosted on?', default=app.config.host)
|
app.config['general_host'] = click.prompt(
|
||||||
|
'What domain will the relay be hosted on?',
|
||||||
|
default = app.config.host
|
||||||
|
)
|
||||||
|
|
||||||
if not app.config.host.endswith('example.com'):
|
if not app.config.host.endswith('example.com'):
|
||||||
break
|
break
|
||||||
|
@ -114,12 +119,60 @@ def cli_setup():
|
||||||
click.echo('The domain must not be example.com')
|
click.echo('The domain must not be example.com')
|
||||||
|
|
||||||
if not app.config.is_docker:
|
if not app.config.is_docker:
|
||||||
app.config['general_listen'] = click.prompt('Which address should the relay listen on?', default=app.config.listen)
|
app.config['general_listen'] = click.prompt(
|
||||||
|
'Which address should the relay listen on?',
|
||||||
|
default = app.config.listen
|
||||||
|
)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
app.config['general_port'] = click.prompt('What TCP port should the relay listen on?', default=app.config.port, type=int)
|
app.config['general_port'] = click.prompt(
|
||||||
|
'What TCP port should the relay listen on?',
|
||||||
|
default = app.config.port,
|
||||||
|
type = int
|
||||||
|
)
|
||||||
|
|
||||||
break
|
break
|
||||||
|
|
||||||
|
app.config['database_type'] = click.prompt(
|
||||||
|
'What database backend would you like to use for the relay?',
|
||||||
|
default = app.config.dbtype,
|
||||||
|
type = click.Choice(['sqlite', 'postgresql', 'mysql']),
|
||||||
|
show_choices = True
|
||||||
|
)
|
||||||
|
|
||||||
|
if app.config.dbtype == 'sqlite':
|
||||||
|
app.config['sqlite_database'] = click.prompt(
|
||||||
|
'Where would you like to store your database file? Relative paths are relative to the config file location.',
|
||||||
|
default = app.config['sqlite_database']
|
||||||
|
)
|
||||||
|
|
||||||
|
else:
|
||||||
|
dbconfig = app.config.dbconfig
|
||||||
|
app.config.hostname = click.prompt(
|
||||||
|
'What address is your database listening on?',
|
||||||
|
default = dbconfig.hostname
|
||||||
|
) or None
|
||||||
|
|
||||||
|
app.config.port = click.prompt(
|
||||||
|
'What port is your database listening on?',
|
||||||
|
default = dbconfig.port
|
||||||
|
) or None
|
||||||
|
|
||||||
|
app.config.database = click.prompt(
|
||||||
|
'What would you like the name of the database be?',
|
||||||
|
default = dbconfig.database
|
||||||
|
) or None
|
||||||
|
|
||||||
|
app.config.username = click.prompt(
|
||||||
|
'Which user will be connecting to the database?',
|
||||||
|
default = dbconfig.username
|
||||||
|
) or None
|
||||||
|
|
||||||
|
app.config.password = click.prompt(
|
||||||
|
'What is the database user\'s password?',
|
||||||
|
default = dbconfig.password
|
||||||
|
) or None
|
||||||
|
|
||||||
app.config.save()
|
app.config.save()
|
||||||
|
|
||||||
with app.database.session as s:
|
with app.database.session as s:
|
||||||
|
|
Loading…
Reference in a new issue