현재 테이블을 만들었습니다.iOS/SQL : 누락 된 열 추가/누락 된 열을 앱 업데이트 후 테이블에 자동으로 제거 하시겠습니까?
[self.fmDataBase executeUpdate:@"create table test (id integer primary key autoincrement, test text);"];
이것은 잘 작동하지만 앞으로는 테이블에 더 많은 열이 필요할 것입니다. 그렇게 보일 것입니다.
[self.fmDataBase executeUpdate:@"create table test (id integer primary key autoincrement, test text, test1 text);"];
상황을 어떻게 처리 할 것인지는 확실하지 않습니다. 시간이 지나면 열을 추가하거나 열을 제거하거나 열 이름을 변경해야합니다. 이걸 어떻게하면 좋을까요?
if (version_1.1) {
[self.fmDataBase executeUpdate:@"alter table test add test1 text"];
} else if (version_1.2) {
[self.fmDataBase executeUpdate:@"alter table test add test2 text"];
} else if (version_1.3) {
[self.fmDataBase executeUpdate:@"alter table test add test3 text"];
}
또는 질문을 비교하고 자동으로 변경하는 방법이 있습니까? 사용자가 앱을 업데이트 할 때 앱이 중단되지 않도록하고 싶습니다. 지금까지 모든 앱 버전에 대해 수동으로 업데이트해야합니다.
사용자가 몇 가지 업데이트를 건너 뛰어도 여러 버전에서 최신 버전으로 다시 업데이트해야 할 수 있습니다. – rmaddy
참조 http://stackoverflow.com/questions/21414930/ios-method-on-app-update 및 http://stackoverflow.com/questions/7347455/ios-rolling-out-app-updates-keeping-user- data-intact-db-update-required? s = 1 | 1.1056 – rmaddy
@rmaddy. 사실입니다. 언제든지 데이터베이스를 변경하는 것처럼 보입니다. 이전 버전이 여전히 올바르게 작동하는지 확인해야합니다. 예를 들어 사용자가 1.1에서 1.3으로 이동하는 경우 테스트 2와 테스트 3 열을 포함하도록 if 문을 수정해야합니다. 내 상황에서 많은 합병증을 피하기위한 최선의 해결책처럼 보이는 것은 마지막 두 가지 버전을 따라 잡는 것입니다. 이전 버전에서는 db를 삭제하고 사용자 로그인 및 다시 동기화 데이터를 만듭니다. 대부분의 사용자는 이전 두 버전을 사용하는 것으로 보이므로 대부분을 만족시킵니다. 그거 좋은 생각이야? – Weakman10122