Почему не меняются записи в базе данных репозитория GitHub?
Написал небольшого бота вместе с базой данных на SQLITE 3 , в базу вносятся id, username, first_name, last_name , дата регистрации и дата последнего пользования. На pycharm все работало все записи вносились корректно. Но как только выгрузил проект на хероку через GitHub репозиторий изменения перестали вносится. То есть моя база данных (users.db) как и была с парой записями так и осталась хотя по сути должны были появится изменения
Ответы (1 шт):
Было бы неплохо увидеть код. Но, возможно, у Вас база данных находится в локальной среде, тогда Вам надо купить или зарегать на бесплатном хостинге онлайн базу данных, потом переписать несколько строк кода соединения уже с новой БД.
Это потому что на Хероку не сохраняются данные никакие все Ваши данные при каждой перезагрузке или пуше принимают дефолтное значение и никак их оттуда не забрать, так как в хероку нет как такого пулла.
Вместо значений
connection = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
database=db_name,
cursorclass=pymysql.cursors.DictCursor
В декораторе Подставьте соотвествующие вашей бд данные
import pymysql
def connection_func(func):
"""Декоратор для соебинения с базой данных"""
def camel(*args, **kwargs):
try:
connection = pymysql.connect(
host=host,
port=port,
user=user,
password=password,
database=db_name,
cursorclass=pymysql.cursors.DictCursor
)
print('successfully connected...')
print('#' * 30)
try:
result = func(connection, *args, **kwarg)
return result
finally:
connection.close()
except Exception as exp:
print('Connection refused...')
print(f'FAIL{exp}')
return camel
@connection_func
def create_table(connection):
"""Создание таблицы в базе данных"""
with connection.cursor() as cursor:
create_table_query = "CREATE TABLE `bulls_and_cows`(id int," \
" moves int," \
" number_list int," \
" input_list int, PRIMARY KEY (id));"
cursor.execute(create_table_query)
@connection_func
def upload_users_data(connection):
"""Выгрузка данных пользователя из базы данных"""
with connection.cursor() as cursor:
select_all_data = "SELECT * FROM `users`"
cursor.execute(select_all_data)
rows = cursor.fetchall()
print(f'•• DATA USERS\n'
f'{"Name":<10} {"ID":<10} Progress') # todo вынести в общий модуль
return rows
Я не вижу вашего когда поэтому не могу определить точный код, поэтому вам стоит слегка поправить его под свои нужды .