İşte benim sorunum: Uygulama yeniden başlatıldığında, veritabanındaki tüm yeni kayıtlar silinmiş olsa da, beklendiği gibi çalışan bir heroku uygulaması oluşturdum. Yerel veritabanımdan "heroku'ya itildiğinde" kopyalananlar hala orada.Eklenen veritabanı kayıtları, uygulama yeniden başlatıldıktan sonra silinir (heroku/SQLAlchemy)
PostgresSQL konusunda yeniyim, ancak kodumu heroku'ya dağıtmak ve veritabanını ayarlamak için dikkatlice talimatları hazırladım. İşte benim konfigürasyonun parçası:
# defines the full path for the database
DATABASE_PATH = os.path.join(basedir, DATABASE)
# the database uri
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + DATABASE_PATH
Geçen çizgi bir Heroku db ile bir bağlantısı (sqlite) kurulmalıdır değil nasıl olduğunu biliyorum, ben hala ne olup bittiğini bilmek istiyorum gerçi.
Veritabanıma veri eklediğimde db.session.add (data) ve db.session.commit() kullanın. ben şöyle bir Heroku veritabanı oluşturdu:
uygulama yeniden başlatıldığında ne olur$ heroku addons:create heroku-postgresql:hobby-dev
? Muhtemelen bariz bir şey eksik.
DÜZENLEME
@admin_blueprint.route('/modify/add-post/',methods=['GET', 'POST'])
@login_required
def add_post():
error = None
form = AddPostForm(request.form)
if request.method == 'POST':
if form.validate_on_submit():
now=datetime.datetime.now()
poster=session['adminname']
new_post = Post(form.text.data,poster, now,form.add_file.data)
db.session.add(new_post)
db.session.commit()
return redirect(url_for('home.posts'))
else:
return render_template("adm_posts.html",error=error,form=form)
if request.method == 'GET':
return render_template("adm_posts.html",form=form)
teşekkürler!
Ben heroku hakkında bilmiyorum, ancak 'sqlite: ///' bana postgresql –
bağlanmadığını söyleyerek, ben hala neler olup bittiğini bilmek isterim diye düşündüm. Çünkü yeniden başlatma olmadığında, veriler kaybolmaz. Ve neden yerel veritabanından veriler kopyalanır ve kaybolmaz. – Baekel
db'ye yazdığınız kodunuzu gösterebilir misiniz? –