@maks_petrov9

Как создать базу данных sqlite3 для всех серверов на которые есть бот discord.py?

Начал писать бота discord на питоне, подключил его к бд, написал пару команда экономики и решил сделать так, чтобы у каждого сервера где есть мой бот, будет своя база данных.
В название таблицы пробовал сначало писать ID сервера - не получилось.
Потом решил писать название сервера - тоже не получилось.

Я уверен что решение очень простое, но найти его не могу :с
Надеюсь на вашу помощь. Вот код:


@Bot.event
async def on_ready():
	DiscordComponents(Bot)
	print('Готов служить OneLife™!')
	await Bot.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="за птичками"))

	for guild in Bot.guilds:

		cursor.execute("""CREATE TABLE IF NOT EXISTS {} (
		name TEXT,
		id INT,
		cash BIGINT,
		rep INT,
		lvl INT,
		server_id INT,
		aboutme TEXT,
		yo TEXT
		)""".format(guild.id))

		for member in guild.members:
			if cursor.execute("SELECT id FROM {} WHERE id = {}".format(guild.id, member.id)).fetchone() is None:
				cursor.execute(f"""INSERT INTO {guild.id} VALUES ('{member}', {member.id}, 0, 0, 1, {guild.id}, 'Не указано! `/aboutme`', 'Не указано! `/yo`')""")
			connect.commit()
  • Вопрос задан
  • 260 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Не проще ли включить id сервера в соответствующие таблицы?
Т.е. у каждого пользователя будет составной id: свой id + id сервера. Аналогично с ссылками на этого пользователя.
Потому что создавать отдельную БД на каждый сервер довольно муторно - и не очень ясно, какая от этого выгода.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы