Create index for submodule subscriptions on site upgrade
Commit d15704079c introduced a new
database index for accessing submodule subscriptions, but the
corresponding database schema Schema_61 did not create the index. As
result the new index was only created if a new site was
initialized but not when an existing site was upgraded. This change
adds a new database schema that takes care to create the missing
index.
Change-Id: Ib4fa1cf184c91935445ce41f66634cd8a5221a45
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
			
			
This commit is contained in:
		@@ -32,7 +32,7 @@ import java.util.List;
 | 
			
		||||
/** A version of the database schema. */
 | 
			
		||||
public abstract class SchemaVersion {
 | 
			
		||||
  /** The current schema version. */
 | 
			
		||||
  public static final Class<Schema_67> C = Schema_67.class;
 | 
			
		||||
  public static final Class<Schema_68> C = Schema_68.class;
 | 
			
		||||
 | 
			
		||||
  public static class Module extends AbstractModule {
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,42 @@
 | 
			
		||||
// Copyright (C) 2012 The Android Open Source Project
 | 
			
		||||
//
 | 
			
		||||
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
// you may not use this file except in compliance with the License.
 | 
			
		||||
// You may obtain a copy of the License at
 | 
			
		||||
//
 | 
			
		||||
// http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
//
 | 
			
		||||
// Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
// See the License for the specific language governing permissions and
 | 
			
		||||
// limitations under the License.
 | 
			
		||||
 | 
			
		||||
package com.google.gerrit.server.schema;
 | 
			
		||||
 | 
			
		||||
import com.google.gerrit.reviewdb.server.ReviewDb;
 | 
			
		||||
import com.google.gwtorm.jdbc.JdbcSchema;
 | 
			
		||||
import com.google.inject.Inject;
 | 
			
		||||
import com.google.inject.Provider;
 | 
			
		||||
 | 
			
		||||
import java.sql.SQLException;
 | 
			
		||||
import java.sql.Statement;
 | 
			
		||||
 | 
			
		||||
public class Schema_68 extends SchemaVersion {
 | 
			
		||||
  @Inject
 | 
			
		||||
  Schema_68(Provider<Schema_67> prior) {
 | 
			
		||||
    super(prior);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Override
 | 
			
		||||
  protected void migrateData(final ReviewDb db, final UpdateUI ui)
 | 
			
		||||
      throws SQLException {
 | 
			
		||||
    final Statement stmt = ((JdbcSchema) db).getConnection().createStatement();
 | 
			
		||||
    try {
 | 
			
		||||
      stmt.execute("CREATE INDEX submodule_subscription_access_bySubscription"
 | 
			
		||||
          + " ON submodule_subscriptions (submodule_project_name, submodule_branch_name)");
 | 
			
		||||
    } finally {
 | 
			
		||||
      stmt.close();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user