As you're using Flask-SQLAlchemy you can do with application factory: from flask_migrate import Migrate from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() migrate = Migrate(compare_type=True) def create_app(config_name): app = Flask(__name__) ... # Migrate migrate.init_app(app, db) ... In your requirements: Flask-SQLAlchemy==2.3.1 flask-migrate==2.1.0 compare_type=True will check for types and names. On Thu, Jul 26, 2018 at 4:55 AM Simon King <si...@simonking.org.uk> wrote: > I've never done this, but I see an alternative syntax is: > > ALTER TABLE invite_code ALTER COLUMN created_at TYPE TIMESTAMP WITH > TIME ZONE USING created_at::timestamp > > ...so maybe you could use the "postgres_using" flag? > > > http://alembic.zzzcomputing.com/en/latest/ops.html#alembic.operations.Operations.alter_column.params.postgresql_using > > Simon > > On Thu, Jul 26, 2018 at 11:47 AM Yingchen Zhang <cevin.che...@gmail.com> > wrote: > > > > use PostgreSQL change column type need `cast` like `ALTER TABLE > invite_code ALTER COLUMN created_at::timestamp TYPE TIMESTAMP WITH TIME > ZONE `, > > but sqlalchemy auto generated is not use, how specify it. > > > > auto generated sql : ALTER TABLE invite_code ALTER COLUMN created_at > TYPE TIMESTAMP WITH TIME ZONE > > > > 在 2018年7月26日星期四 UTC+8下午6:16:10,Simon King写道: > >> > >> On Thu, Jul 26, 2018 at 11:03 AM Yingchen Zhang <cevin....@gmail.com> > wrote: > >> > > >> > old model > >> > > >> > class User(db.Model): > >> > __tablename__ = 'users' > >> > id = db.Column(db.BigInteger, primary_key=True) > >> > name = db.Column(db.VARCHAR(50), nullable=False) > >> > > >> > email = db.Column(db.VARCHAR(200), nullable=False) > >> > > >> > time = db.Column(db.INTGER, nullable=False) > >> > > >> > > >> > new model > >> > > >> > class User(db.Model): > >> > __tablename__ = 'users' > >> > id = db.Column(db.BigInteger, primary_key=True) > >> > name = db.Column(db.VARCHAR(50), nullable=False) > >> > > >> > email = db.Column(db.VARCHAR(200), nullable=False) > >> > > >> > time = db.Column(db.TIMESTAMP(timezone=True), nullable=False) > >> > > >> > > >> > new database table and is still empty, so do not ask why... emmmm > >> > > >> > I use flask-sqlalchemy migration tool. When I modified User mode and > run `python manager.py db migrate`.got : > >> > > >> > `INFO [alembic.env] No changes in schema detected.` > >> > > >> > So, Sqlalchemy migrate tool only support create and drop ? > >> > >> Alembic (the library that flask-sqlalchemy is using for migrations) > >> supports changing column types. However, it doesn't *auto-detect* > >> changes of column types by default: > >> > >> > http://alembic.zzzcomputing.com/en/latest/autogenerate.html#what-does-autogenerate-detect-and-what-does-it-not-detect > >> > >> """ > >> Autogenerate can optionally detect: > >> > >> Change of column type. This will occur if you set the > >> EnvironmentContext.configure.compare_type parameter to True, or to a > >> custom callable function. The feature works well in most cases, but is > >> off by default so that it can be tested on the target schema first. It > >> can also be customized by passing a callable here; see the section > >> Comparing Types for details. > >> """ > >> > >> Hope that helps, > >> > >> Simon > > > > -- > > SQLAlchemy - > > The Python SQL Toolkit and Object Relational Mapper > > > > http://www.sqlalchemy.org/ > > > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > > --- > > You received this message because you are subscribed to the Google > Groups "sqlalchemy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to sqlalchemy+unsubscr...@googlegroups.com. > > To post to this group, send email to sqlalchemy@googlegroups.com. > > Visit this group at https://groups.google.com/group/sqlalchemy. > > For more options, visit https://groups.google.com/d/optout. > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To post to this group, send email to sqlalchemy@googlegroups.com. > Visit this group at https://groups.google.com/group/sqlalchemy. > For more options, visit https://groups.google.com/d/optout. > -- *Andrés Garita* Desarrollador de Software andresgarita.com -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.