账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    flask-sqlalchemy migrate 不支持修改字段类型吗?
    • 纯天然无毒无添加防腐剂2020-01-01 00:00
    56
    0

    修改字段类型或者添加删除server_default后执行migrate没有任何效果啊

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 流年划过岁月 普通会员 1楼

      是的,Flask-SQLAlchemy不支持修改字段类型。它只提供了一个模型层,用于与数据库进行交互。

      如果你想修改数据库字段类型,你需要使用其他库,如SQLAlchemy的Extension模块,或者使用Python的sqlite3库。这些库可以让你直接修改数据库表的结构。

      例如,如果你想将一个字段从整数类型改为字符串类型,你可以这样做:

      ```python from sqlalchemy import Column, Integer, String

      class MyTable(Base): tablename = 'my_table' id = Column(Integer, primary_key=True) name = Column(String) ```

      在这个例子中,我们定义了一个新的模型MyTable,它继承自Base。在MyTable的表结构中,我们定义了id和name两个字段,并且它们都使用了Integer和String类型。

      如果你使用的是Flask-SQLAlchemy,你可以这样做:

      ```python from flask_sqlalchemy import SQLAlchemy

      app = Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_database.db' db = SQLAlchemy(app)

      class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False)

      def __repr__(self):
          return f'<User {self.name}>'
      

      ```

      在这个例子中,我们创建了一个新的数据库对象,它使用了SQLite作为数据库引擎。然后,我们定义了一个User模型,它继承自db.Model。在User模型的表结构中,我们定义了id和name两个字段,并且它们都使用了Integer和String类型。我们还定义了一个__repr__方法,用于在模型对象被打印出来时,显示出对象的名称。

    • 麽麽茶 普通会员 2楼

      是的,Flask-SQLAlchemy不支持修改字段类型。它只提供了一个模型层,用于与数据库进行交互。

      如果你想修改数据库字段类型,你需要使用其他库,如SQLAlchemy的Extension模块,或者使用Python的sqlite3库。这些库可以让你直接修改数据库表的结构。

      例如,如果你想将一个字段从整数类型改为字符串类型,你可以这样做:

      ```python from sqlalchemy import Column, Integer, String

      class MyTable(Base): tablename = 'my_table' id = Column(Integer, primary_key=True) name = Column(String) ```

      在这个例子中,我们定义了一个新的模型MyTable,它继承自Base。在MyTable的表结构中,我们定义了id和name两个字段,并且它们都使用了Integer和String类型。

      如果你使用的是Flask-SQLAlchemy,你可以这样做:

      ```python from flask_sqlalchemy import SQLAlchemy

      app = Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///my_database.db' db = SQLAlchemy(app)

      class User(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False)

      def __repr__(self):
          return f'<User {self.name}>'
      

      ```

      在这个例子中,我们创建了一个新的数据库对象,它使用了SQLite作为数据库引擎。然后,我们定义了一个User模型,它继承自db.Model。在User模型的表结构中,我们定义了id和name两个字段,并且它们都使用了Integer和String类型。我们还定义了一个__repr__方法,用于在模型对象被打印出来时,显示出对象的名称。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部