Skip to content

Instantly share code, notes, and snippets.

@mmkhitaryan
Last active February 11, 2024 12:51
Show Gist options
  • Save mmkhitaryan/bf46cb557cae421452ba938989005b70 to your computer and use it in GitHub Desktop.
Save mmkhitaryan/bf46cb557cae421452ba938989005b70 to your computer and use it in GitHub Desktop.
import datetime
from tortoise import Tortoise, fields, timezone
from tortoise.models import Model
NAIVE_DATETIME = datetime.datetime.strptime("2024-2-11","%Y-%m-%d")
class TortoiseModel(Model):
name = fields.CharField(max_length=50, unique=True)
last_register_date = fields.DatetimeField()
class Meta:
table = "tortoises"
async def init():
await Tortoise.init(
db_url='sqlite://memory',
modules={'models': ['__main__']},
)
await Tortoise.generate_schemas()
async def working_create_tortoises():
aware_datatime = timezone.make_aware(NAIVE_DATETIME)
await TortoiseModel.get_or_create(name='test', last_register_date=aware_datatime)
await TortoiseModel.get_or_create(name='test', last_register_date=aware_datatime)
print("successfully created")
async def failing_create_tortoises():
naive_datatime = NAIVE_DATETIME
await TortoiseModel.get_or_create(name='test', last_register_date=naive_datatime)
await TortoiseModel.get_or_create(name='test', last_register_date=naive_datatime)
async def retrieve_tortoises():
tortoises = await TortoiseModel.all().values()
for tortoise in tortoises:
print(tortoise)
async def main():
await init()
await working_create_tortoises()
await failing_create_tortoises()
await Tortoise.close_connections()
if __name__ == "__main__":
import asyncio
asyncio.run(main())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment