Fix Database Restore
Browse files
app.py
CHANGED
|
@@ -144,6 +144,10 @@ def register():
|
|
| 144 |
user.set_password(form.password.data)
|
| 145 |
db.session.add(user)
|
| 146 |
db.session.commit()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 147 |
flash('Đăng ký thành công! Vui lòng đăng nhập.', 'success')
|
| 148 |
return redirect(url_for('login'))
|
| 149 |
|
|
@@ -414,6 +418,10 @@ def predict():
|
|
| 414 |
)
|
| 415 |
db.session.add(feedback)
|
| 416 |
db.session.commit()
|
|
|
|
|
|
|
|
|
|
|
|
|
| 417 |
except Exception as db_error:
|
| 418 |
print(f"Database error: {db_error}")
|
| 419 |
# Không dừng quá trình nếu lưu DB thất bại
|
|
@@ -481,25 +489,43 @@ with app.app_context():
|
|
| 481 |
except Exception as e:
|
| 482 |
print(f"⚠️ Lỗi khi thêm cột: {e}")
|
| 483 |
|
| 484 |
-
# Tạo tài khoản admin mặc định nếu chưa có
|
| 485 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 486 |
admin_user = User.query.filter_by(username='admin').first()
|
| 487 |
if not admin_user:
|
| 488 |
-
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
|
| 492 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 493 |
else:
|
| 494 |
# Cập nhật user admin hiện có thành admin nếu chưa
|
| 495 |
if not admin_user.is_admin:
|
| 496 |
admin_user.is_admin = True
|
| 497 |
db.session.commit()
|
| 498 |
print("✅ Đã cập nhật tài khoản admin hiện có")
|
|
|
|
|
|
|
| 499 |
except Exception as e:
|
| 500 |
-
print(f"⚠️ Lỗi khi
|
| 501 |
|
| 502 |
print("✅ Database đã sẵn sàng!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 503 |
|
| 504 |
@app.route("/analyze-csv", methods=["POST"])
|
| 505 |
@login_required
|
|
@@ -667,6 +693,10 @@ def analyze_csv():
|
|
| 667 |
try:
|
| 668 |
db.session.commit()
|
| 669 |
print(f"✅ Đã lưu {processed_count} feedback vào database")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 670 |
except Exception as commit_error:
|
| 671 |
db.session.rollback()
|
| 672 |
print(f"❌ Lỗi khi commit database: {commit_error}")
|
|
|
|
| 144 |
user.set_password(form.password.data)
|
| 145 |
db.session.add(user)
|
| 146 |
db.session.commit()
|
| 147 |
+
|
| 148 |
+
# Backup database after user registration
|
| 149 |
+
backup_database()
|
| 150 |
+
|
| 151 |
flash('Đăng ký thành công! Vui lòng đăng nhập.', 'success')
|
| 152 |
return redirect(url_for('login'))
|
| 153 |
|
|
|
|
| 418 |
)
|
| 419 |
db.session.add(feedback)
|
| 420 |
db.session.commit()
|
| 421 |
+
|
| 422 |
+
# Backup database after adding feedback
|
| 423 |
+
backup_database()
|
| 424 |
+
|
| 425 |
except Exception as db_error:
|
| 426 |
print(f"Database error: {db_error}")
|
| 427 |
# Không dừng quá trình nếu lưu DB thất bại
|
|
|
|
| 489 |
except Exception as e:
|
| 490 |
print(f"⚠️ Lỗi khi thêm cột: {e}")
|
| 491 |
|
| 492 |
+
# Tạo tài khoản admin mặc định nếu chưa có (chỉ khi database trống)
|
| 493 |
try:
|
| 494 |
+
# Kiểm tra xem có user nào trong database không
|
| 495 |
+
total_users = User.query.count()
|
| 496 |
+
print(f"📊 Total users in database: {total_users}")
|
| 497 |
+
|
| 498 |
admin_user = User.query.filter_by(username='admin').first()
|
| 499 |
if not admin_user:
|
| 500 |
+
# Chỉ tạo admin nếu database hoàn toàn trống
|
| 501 |
+
if total_users == 0:
|
| 502 |
+
admin_user = User(username='admin', is_admin=True)
|
| 503 |
+
admin_user.set_password('123456')
|
| 504 |
+
db.session.add(admin_user)
|
| 505 |
+
db.session.commit()
|
| 506 |
+
print("✅ Đã tạo tài khoản admin mặc định (username: admin, password: 123456)")
|
| 507 |
+
else:
|
| 508 |
+
print("ℹ️ Database có dữ liệu từ backup, không tạo admin mặc định")
|
| 509 |
else:
|
| 510 |
# Cập nhật user admin hiện có thành admin nếu chưa
|
| 511 |
if not admin_user.is_admin:
|
| 512 |
admin_user.is_admin = True
|
| 513 |
db.session.commit()
|
| 514 |
print("✅ Đã cập nhật tài khoản admin hiện có")
|
| 515 |
+
else:
|
| 516 |
+
print("✅ Admin user đã tồn tại")
|
| 517 |
except Exception as e:
|
| 518 |
+
print(f"⚠️ Lỗi khi xử lý tài khoản admin: {e}")
|
| 519 |
|
| 520 |
print("✅ Database đã sẵn sàng!")
|
| 521 |
+
|
| 522 |
+
# Backup lại sau khi có thay đổi
|
| 523 |
+
if total_users > 0:
|
| 524 |
+
print("🔄 Backing up restored database...")
|
| 525 |
+
if backup_database():
|
| 526 |
+
print("✅ Restored database backed up successfully")
|
| 527 |
+
else:
|
| 528 |
+
print("⚠️ Failed to backup restored database")
|
| 529 |
|
| 530 |
@app.route("/analyze-csv", methods=["POST"])
|
| 531 |
@login_required
|
|
|
|
| 693 |
try:
|
| 694 |
db.session.commit()
|
| 695 |
print(f"✅ Đã lưu {processed_count} feedback vào database")
|
| 696 |
+
|
| 697 |
+
# Backup database after CSV processing
|
| 698 |
+
backup_database()
|
| 699 |
+
|
| 700 |
except Exception as commit_error:
|
| 701 |
db.session.rollback()
|
| 702 |
print(f"❌ Lỗi khi commit database: {commit_error}")
|