1

I want to create Table using Flask Migration tool for my Postgresql Database.

I have written my flask model as follow:

from flask.ext.security import Security, SQLAlchemyUserDatastore, UserMixin, RoleMixin, utils
class AdminUser(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    allow_center_list = db.Column(db.ARRAY(db.Integer))
    admin_profile_id = db.Column(db.Integer, db.ForeignKey('admin_profile.id'))
    created = db.Column(db.DateTime(), default=datetime.now)
    modified = db.Column(db.DateTime(), default=datetime.now)

    user = db.relationship("User", back_populates="admin_user")
    admin_profile = db.relationship("AdminProfile", back_populates="admin_user")

I want to user integer array for allow_center_list column.

When I try execute "flask db upgrade" command (after executing init and migrate command), I am getting error as follow:

sa.Column('allow_center_list', sa.ARRAY(Integer()), nullable=True),NameError: name 'Integer' is not defined

Please guide me how we can define Integer array in Flask SQLAlchemy model.

2
  • 2
    Surely it should be db.Integer, as you have used everywhere else? Commented Jan 5, 2017 at 14:15
  • I wrote db.Integer (even I tried Integer also), getting same error for both the cases. Commented Jan 6, 2017 at 14:07

1 Answer 1

4

This might be similar to this bug.

Try sa.Integer() instead.

Sign up to request clarification or add additional context in comments.

1 Comment

Great. Could you please click "accept" on my answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.