Git Product home page Git Product logo

flask-continuum's People

Contributors

bprinty avatar lan17 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flask-continuum's Issues

Setting up the flask application with extensions Python 3.10.6 Issue

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_continuum import Continuum, VersioningMixin

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'

db = SQLAlchemy()
continuum = Continuum()



def create_app():
    db.init_app(app)
    continuum.init_app(app, db)
    return app


class Article(db.Model, VersioningMixin):
    __tablename__ = 'article'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.Unicode(255))
    content = db.Column(db.UnicodeText)


if __name__ == '__main__':
    app = create_app()
    app.run()


# my env set up
# Flask==2.2.3
# Flask-Continuum==0.1.7
# Flask-SQLAlchemy==3.0.3
#
# Python 3.10.6
# OS Ubuntu 22.04.2 LTS

### when I run the app it rises this issue

Traceback (most recent call last):
File "/home/me/project/app.py", line 18, in
app = create_app()
File "/home/me/project/app.py", line 14, in create_app
continuum.init_app(app, db)
File "/home/me/project/venv/lib/python3.10/site-packages/flask_continuum/plugin.py", line 168, in init_app
if db.app is None:
File "/home/me/project/venv/lib/python3.10/site-packages/flask_sqlalchemy/extension.py", line 1005, in getattr
raise AttributeError(name)
AttributeError: app

no such table: transaction

After playing with flask-migrate and adding Flask-Continuum, I decided to start with Flask-Continuum, then add flask-migrate, but I can't get Flask-Continuum to work from the documentation.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_continuum import Continuum

app = Flask(__name__)
db = SQLAlchemy(app)
continuum = Continuum(app, db)

from flask_continuum import VersioningMixin

# defining database schema
class Article(db.Model, VersioningMixin):
    __tablename__ = 'article'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.Unicode(255))
    content = db.Column(db.UnicodeText)

All I did was combine the two minimal app examples, then ran the following:

$ flask shell
>>> from app import db, Article
>>> article = Article(name='Some article', content='Some content') 
>>> db.session.add(article)
>>> db.session.commit()
[...]
sqlite3.OperationalError: no such table: transaction
[...]

What am I missing?

Thanks.

using flask-migrate

I just added Flask-Continuum to a project using flask-migrate and received the following:

flask db migrate -m 'Add continuum.'
[...]
INFO  [alembic.env] No changes in schema detected.

Using the sqlalchemy-continuum documentation, I added the following:

from sqlalchemy import orm
[...]
orm.configure_mappers()

This allowed a successful migration:

flask db migrate -m 'Add continuum.'
[...]
INFO  [alembic.autogenerate.compare] Detected added table 'transaction'
[...]

The following is my test app. I used the flask-migrate documentation as the starting point, then added Flask-Continuum.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_continuum import Continuum, VersioningMixin
from flask_migrate import Migrate
from sqlalchemy import orm

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'

db = SQLAlchemy(app)
continuum = Continuum(app, db)
migrate = Migrate(app, db)

class User(VersioningMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(123))                                               

orm.configure_mappers()

Make flask-continuum depend on sqlalchemy_continuum

pip install flask-continuum

does not install sqlalchemy_continuum

which results in:

127.0.0.1 - - [28/Apr/2020 16:28:13] "GET / HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/Users/volker/PycharmProjects/verivinum-core-api/app.py", line 25, in <module>
    from flask_continuum import Continuum
  File "/Users/volker/PycharmProjects/verivinum-core-api/venv/lib/python3.7/site-packages/flask_continuum/__init__.py", line 11, in <module>
    from .mixins import VersioningMixin      ## noqa
  File "/Users/volker/PycharmProjects/verivinum-core-api/venv/lib/python3.7/site-packages/flask_continuum/mixins.py", line 11, in <module>
    from sqlalchemy_continuum import changeset, count_versions, is_modified
ModuleNotFoundError: No module named 'sqlalchemy_continuum'

Installing flask-continuum with pip should automatically install sqlalchemy_continuum

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.