from db import database as db
from models import Account, User
class AccountSeeder(Seeder):
def run(self):
self.priority = 5
Create a Faker generator with Mexican pesos locale
faker = Faker(locale='es_MX')
# Get all users from the database
users = User.query.all()
# Seed data for the accounts
for _ in range(10):
account = Account(
name=faker.name(),
type=faker.word(),
balance=faker.pyfloat(
min_value=0, max_value=10000, right_digits=2),
currency='MXN' # Use 'MXN' for Mexican pesos
)
# Assign a random user_id to the account
account.user_id = generator.random_element(users).id
db.session.add(account)
# Tell the Flask-Seeder extension to run this seeder
self.add_entity(Account)
db.session.commit()
Hello I have my models and seeders in their files but when I try tu run flask seed run I get this message
Running database seeders Committing to database!
Here is the example of how I am arranging the files
app.py
from dotenv import load_dotenv from flask import Flask from flask_migrate import Migrate from flask_restful import Api
from db import database from ma import marshmallow from models import from sd import seeder from seeder import
app = Flask(name)
load_dotenv(".env")
app.config.from_object("default_config")
app.config.from_envvar("APPLICATION_SETTINGS")
database.init_app(app) marshmallow.init_app(app) seeder.init_app(app, database) migrate = Migrate(app, database) api = Api(app)
if name == "main": app.run(port=5000, debug=True)
model (models folder)
from datetime import datetime
from db import database as db
class Account(db.Model):
seeder ( in seeder folder)
from datetime import datetime
from flask_seeder import Faker, Seeder, generator
from db import database as db from models import Account, User
class AccountSeeder(Seeder): def run(self): self.priority = 5
Create a Faker generator with Mexican pesos locale