package com.idega.slide.schema;
import java.sql.Connection;
import com.idega.util.database.ConnectionBroker;
import com.idega.util.dbschema.SQLSchemaAdapter;
import com.idega.util.dbschema.SQLSchemaCreator;
/**
*
*
* Last modified: $Date: 2005/11/10 15:56:20 $ by $Author: gimmi $
*
* @author <a href="mailto:aron@idega.com">aron</a>
* @version $Revision: 1.4 $
*/
public class SlideSchemaCreator {
public void createSchemas(){
try {
//PoolManager pManager = PoolManager.getInstance();
Connection conn = ConnectionBroker.getConnection();
String datastoreType = SQLSchemaAdapter.detectDataStoreType(conn);
ConnectionBroker.freeConnection(conn);
createSchemas(datastoreType);
} catch (Exception e) {
e.printStackTrace();
}
}
public void createSchemas(String dataStoreType) throws Exception{
SQLSchemaAdapter dsi = SQLSchemaAdapter.getInstance(dataStoreType);
if (dsi.getSupportsSlide()) {
SQLSchemaCreator tableCreator = dsi.getTableCreator();
tableCreator.generateSchema(new UriSchema());
tableCreator.generateSchema(new ObjectSchema());
tableCreator.generateSchema(new BindingSchema());
tableCreator.generateSchema(new ParentBindingSchema());
tableCreator.generateSchema(new LinksSchema());
tableCreator.generateSchema(new LocksSchema());
tableCreator.generateSchema(new BranchSchema());
tableCreator.generateSchema(new LabelSchema());
tableCreator.generateSchema(new VersionSchema());
tableCreator.generateSchema(new VersionHistorySchema());
tableCreator.generateSchema(new VersionPredsSchema());
tableCreator.generateSchema(new VersionLabelsSchema());
tableCreator.generateSchema(new VersionContentSchema());
tableCreator.generateSchema(new PropertiesSchema());
tableCreator.generateSchema(new PermissionsSchema());
} else {
System.out.println("[Slide Startup] Database not supported");
}
}
}