From yesterday I read a lot of topics about the famous error:
"No such command init-db"
So, I followed the tutorial here: https://flask.palletsprojects.com/en/1.1.x/tutorial/database/
(I’m under Debian 9.6)
I do the following :
I then tried:
python3 -m flask init-db
I also tried:
But I still have the same error message.
Here is the tree of my project :
│ ├── auth.cpython-35.pyc
│ ├── db.cpython-35.pyc
│ ├── __init__.cpython-35.pyc
│ ├── pdf.cpython-35.pyc
│ └── ws.cpython-35.pyc
I didn’t see what I’ve missed.
I found the problem.
When I launched
flask --help, I saw there was an import error of a module. I just installed that module via
pip, and it was okay.
Maybe you could simply try using
Note :- USE Underscore
_ instead of hyphen
Cross verify it by checking if a sqlite file is created in instance folder
I just had the same problem even though it worked the last time.
I just ran the flask, then stopped it and tried to initialize the database and it worked.
In order to run
init-db command, you first need to make sure you are outside the flaskr package (use pwd command if not sure) and at the same level as venv folder, then set the two below on the terminal:
$env:FLASK_APP = "flaskr"
$env:FLASK_ENV = "development"
Initialized the database.
You don’t need to install any extra packages if you follow the tutorial and execute the commands as they say.
You must set FLASK_APP correctly. It must match the directory name where the app factory lives. In flaskr, this is in
flaskr/__init__.py. The factory is named create_app().
So if you rename
flaskr/, you must set FLASK_APP to match.
I got the same problem. After executing
flask --help or just
flask, I realised the problem was caused by an import error and there was a typo in my FLASK_APP.
Correcting it made everything work again.
First, be sure to activate your virtual environment.
If you are using a new terminal then run the command below:
Run the flask app
After that run the DB command
You should see the Database Initialized message.
in my case the command I had to use was different, as seen from the flask –help output:
Commands: init.db routes Show the routes for the app. run Run a development server. shell Run a shell in the app context.
So I had to use flask init.db for some reason.
Make sure you create and activate the virtual environment using the venv command from the command prompt.
Those are the windows cmd commands:
pathmyproject> py -3 -m venv venv
I had this issue, and the problem was I had not imported migrate in my app. I solved the issue by adding these two statements to my file:
from flask_migrate import Migrate and
migrate = Migrate(app, db) .
I saved the file, then ran the
flask db init command again, and it worked!
be careful that install flask_migrate in your env.
so in cmd:
py -3 -m venv venv
pip install flask_migrate
hope this will help somebody and maybe made it more clear.
In my case I run the following command:
flask --app flask_app_directory_name db init
Here I mentioned where my app is by the option "–app":
flask_app_directory_name – package of my app(or I think it could be a path to the file with the app).