Comments (8)
Hi,
This error is telling you that the database does not has a table named user, could you drop the content of the migration generated by flask db migrate
?
EDIT: could you also provide the path of the database in your config ? thanks
from cookiecutter-flask-restful.
That's what migrate
command outputs after init
:
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.autogenerate.compare] Detected added table 'user'
INFO [alembic.autogenerate.compare] Detected added table 'token_blacklist'
Generating /home/devaerial/git-clones/restful_api/migrations/versions/1f875345b537_.py ... done
And here is my config value for database: SQLALCHEMY_DATABASE_URI = "sqlite:///myapi.db"
from cookiecutter-flask-restful.
Just to be sure, can you try to use an absolute path for your SQLALCHEMY_DATABASE_URI
instead of a relative one ? Looks like when you start your shell it doesn't pick to correct path and use an empty database
from cookiecutter-flask-restful.
It works with absolute path, but I'm more interested on how to make it works with relative one. If I would like clone my repo on another machine I would need manually change path to sqlite development database which is not very convenient.
from cookiecutter-flask-restful.
Yes I understand, the simplest way is to do this is to update the config.py
file with something like this:
import os
DB_PATH = os.path.join(os.path.dirname(__file__), 'my_db.db')
SQLALCHEMY_DATABASE_URI = "sqlite:////{}".format(DB_PATH)
You can off course update the DB_PATH to fit your needs, but this way DB_PATH
will always be an absolute path, but based on the location of your config file (inside app directory)
This is one of the solution and maybe the simplest, but you can also hook inside the create_app
function to dynamically get a path relative to your application instance and update your config accordingly during this step
from cookiecutter-flask-restful.
That worked for me. I've also tried this approach in similar app that uses dynaconf extension to load configuration variables from .yaml file instead of python config file , but, unfortunately, it failed with the same error. Still, thanks anyway.
from cookiecutter-flask-restful.
For this kind of tool you can try to hook in the app factory, for example in this template something like this should work (not tested)
def configure_app(app, testing=False):
"""set configuration for application
"""
# default configuration
app.config.from_object('myapi.config')
if testing is True:
# override with testing config
app.config.from_object('myapi.configtest')
else:
# override with env variable, fail silently if not set
app.config.from_envvar("MYAPI_CONFIG", silent=True)
# override SQLALCHEMY_DATABASE_URI
path = os.path.join(os.path.dirname(__file__), my_settings.get('DB_PATH'))
# or using app.root_path
# path = os.path.join(app.root_path, my_settings.get('DB_PATH'))
app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite://{}".format(path)
from cookiecutter-flask-restful.
closing, don't hesitate to re-open this issue if needed
from cookiecutter-flask-restful.
Related Issues (20)
- Separate Schema and Ressources in separates modules HOT 1
- Make the project PEP8 compliant... HOT 2
- Make config class instead of a plain strings HOT 7
- Tests fail HOT 7
- Celery HOT 1
- Celery test failed HOT 4
- add cli elements to flask terminal command HOT 1
- The password inserted into the database when adding a user is a hash value, but it is plaintext when updating a user. HOT 2
- Currently broken because incompatable with Celery 5 HOT 2
- "myapi": executable file not found in $PATH: unknown when using docker HOT 2
- How to debug with pycharm HOT 1
- ImportError: cannot import name 'jwt_refresh_token_required' from 'flask_jwt_extended' HOT 8
- Pagination fails by type error
- tox and pytest HOT 1
- Flask 2.0 just came out and broke all :( HOT 3
- module 'myapi.manage' has no attribute 'cli' HOT 3
- flask db upgrade sqlite fails with import error HOT 2
- Can we support this project by using asgi & async?
- Consider pyproject.toml as an option?
- Use a declarative config?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cookiecutter-flask-restful.