gpt4 book ai didi

python - 为什么每次部署后都会重置数据库?

转载 作者:行者123 更新时间:2023-12-03 16:55:46 24 4
gpt4 key购买 nike

我是刚部署到aws和flask的人。基本上,我有一个简单的Flask应用程序,但是每次我进行更改并将新代码部署到AWS Elastic beantalk时,数据库都会重置。

from dateutil import parser
from datetime import datetime
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from flask_cors import CORS
import os

application = app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'db.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
ma = Marshmallow(app)
cors = CORS(app)

@app.route('/')
def hello():
return 'hello'

.
.
.


class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
weight = db.Column(db.Float)
workouts = db.relationship('Workout', backref='user', lazy=True)

def __init__(self, name, weight):
self.name = name
self.weight = weight

class UserSchema(ma.Schema):
class Meta:
fields = ('id', 'name', 'weight')

user_schema = UserSchema(strict=True)
users_schema = UserSchema(many=True, strict=True)
.
.
.


db.create_all()

if __name__ == '__main__':
app.run(debug=True)


我希望每次我
eb deploy flask-env我的数据库不会重置,但确实如此。例如,如果我创建一个用户,然后在代码中进行某些更改并进行部署,则该用户将消失。

最佳答案

你应该:


创建一个EBS卷
将数据库加载到该卷中
使用.ebextension将EBS卷附加到Beanstalk应用程序。一个示例可以是found here


综上所述,这不是一个高度可用的,架构良好的解决方案,并且会迅速恶化。

在将来出现问题之前,您可能希望在将来的某个时候用RDS实例替换SQLite。

关于python - 为什么每次部署后都会重置数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57245746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com