cảm ơn bạn đã đọc và giúp đỡ :)Làm thế nào để cập nhật bảng với activeandroid sau khi thêm một cột mới
Tôi đang sử dụng ActiveAndroid 3.0 - Android 2.2 - Trong ứng dụng của tôi, tôi có một mô hình gọi là "người sử dụng". ban đầu tôi chỉ tạo mô hình với các cột/thuộc tính (id, name, passcode), tôi chạy ứng dụng trên trình mô phỏng và nó đã hoạt động.
@Table(name = "user")
public class User extends Model {
@Column (name = "name")
public String name;
@Column (name = "pass_code")
public String passCode;
}
Sau đó, tôi đã thêm một cột/thuộc tính mới - profileImage. Tôi chạy các ứng dụng trên giả lập và tôi đã nhận hồ sơ cột SQLiteImage không tồn tại lỗi.
@Table(name = "user")
public class User extends Model {
@Column (name = "name")
public String name;
@Column (name = "pass_code")
public String passCode;
@Column (name = "profile_image")
public String profileImage;
}
Tôi đã thử thay đổi tên db ActiveAndroid và cập nhật thuộc tính phiên bản db trong tệp kê khai.
<meta-data android:name="AA_DB_NAME" android:value="my_app.db" />
<meta-data android:name="AA_DB_VERSION" android:value="2" />
Nhưng tôi tiếp tục nhận được cột không tồn tại lỗi.
ERROR AndroidRuntime Caused by: android.database.sqlite.SQLiteException:
no such column: profile_image: , while compiling: SELECT * FROM user WHERE profile_image = ?
Tôi cũng đã thử, chưa cài đặt ứng dụng từ trình giả lập, khởi động lại trình mô phỏng, gọi ActiveAndroid.cacheClear(). Cho đến nay không ai trong số này làm việc.
Tôi thực sự đánh giá cao bất kỳ trợ giúp nào. cảm ơn.
cảm ơn sự giúp đỡ, được đánh giá cao. – dagger
Ngoài sự tò mò, không nên xóa ứng dụng và cài đặt lại ứng dụng đã hoạt động? Hoặc loại bỏ các ứng dụng không loại bỏ các DB là tốt? –
@JoshPinter: Có, việc gỡ cài đặt ứng dụng sẽ hoạt động. Như một vấn đề của thực tế, nhấn 'Clear Data' nên làm theo dõi quá. Đó không phải là giải pháp dài hạn, bởi vì có thể bạn không muốn người dùng ứng dụng của mình trải qua quá trình đó. Cách tiếp cận đúng là cung cấp logic nâng cấp lược đồ thích hợp. –