import datetime

from sqlalchemy.schema import Column
from sqlalchemy.types import DateTime, Integer

from sqlalchemy.ext.declarative import declarative_base, declared_attr


Base = declarative_base()


class BaseMixin:

    id = Column(Integer, primary_key=True)

    @declared_attr
    def __tablename__(cls):
        return cls.__name__.lower()


class TimestampMixin:

    created_at = Column(
        DateTime, nullable=False, default=datetime.datetime.now)
    updated_at = Column(DateTime)

from datetime import datetime

from sqlalchemy.schema import Column
from sqlalchemy.types import DateTime, Integer

from sqlalchemy.ext.declarative import declarative_base, declared_attr


Base = declarative_base()


class BaseMixin:

    id = Column(Integer, primary_key=True)

    @declared_attr
    def __tablename__(cls):
        return cls.__name__.lower()


class TimestampMixin:

    created_at = Column(DateTime, nullable=False, default=datetime.now)
    updated_at = Column(DateTime, onupdate=datetime.now)

Update updated time on update
Update updated time on update

I.e., added onupdate=datetime.now to TimestampMixin.updated_at so that it will
be automatically updated whenever a record is edited.

- import datetime
+ from datetime import datetime
  
  from sqlalchemy.schema import Column
  from sqlalchemy.types import DateTime, Integer
  
  from sqlalchemy.ext.declarative import declarative_base, declared_attr
  
  
  Base = declarative_base()
  
  
  class BaseMixin:
  
      id = Column(Integer, primary_key=True)
  
      @declared_attr
      def __tablename__(cls):
          return cls.__name__.lower()
  
  
  class TimestampMixin:
  
-     created_at = Column(
-         DateTime, nullable=False, default=datetime.datetime.now)
+     created_at = Column(DateTime, nullable=False, default=datetime.now)
-     updated_at = Column(DateTime)
+     updated_at = Column(DateTime, onupdate=datetime.now)
  
Update updated time on update
## Code Before:
import datetime

from sqlalchemy.schema import Column
from sqlalchemy.types import DateTime, Integer

from sqlalchemy.ext.declarative import declarative_base, declared_attr


Base = declarative_base()


class BaseMixin:

    id = Column(Integer, primary_key=True)

    @declared_attr
    def __tablename__(cls):
        return cls.__name__.lower()


class TimestampMixin:

    created_at = Column(
        DateTime, nullable=False, default=datetime.datetime.now)
    updated_at = Column(DateTime)

## Instruction:
Update updated time on update
## Code After:
from datetime import datetime

from sqlalchemy.schema import Column
from sqlalchemy.types import DateTime, Integer

from sqlalchemy.ext.declarative import declarative_base, declared_attr


Base = declarative_base()


class BaseMixin:

    id = Column(Integer, primary_key=True)

    @declared_attr
    def __tablename__(cls):
        return cls.__name__.lower()


class TimestampMixin:

    created_at = Column(DateTime, nullable=False, default=datetime.now)
    updated_at = Column(DateTime, onupdate=datetime.now)
