Commit 02b7fa30 by Tuukka Kivilahti

Merge branch 'dbchanges' into 'master'

DB changes.

See merge request !406
2 parents ce205efe 2894fcba
......@@ -449,6 +449,143 @@ public class BootstrapBean implements BootstrapBeanLocal {
"ALTER TABLE user_allergies ADD CONSTRAINT FK_user_allergies_allergy_id FOREIGN KEY (allergy_id) REFERENCES allergies (id)"
});
dbUpdates.add(new String[]{
"ALTER TABLE account_events ALTER meta TYPE jsonb",
"ALTER TABLE actionlog_message_responses ALTER meta TYPE jsonb",
"ALTER TABLE actionlog_message_tags ALTER meta TYPE jsonb",
"ALTER TABLE actionlog_messages ALTER meta TYPE jsonb",
"ALTER TABLE api_application_instances ALTER meta TYPE jsonb",
"ALTER TABLE api_applications ALTER meta TYPE jsonb",
"ALTER TABLE application_permissions ALTER meta TYPE jsonb",
"ALTER TABLE approvals ALTER meta TYPE jsonb",
"ALTER TABLE bill_lines ALTER meta TYPE jsonb",
"ALTER TABLE bills ALTER meta TYPE jsonb",
"ALTER TABLE card_code ALTER meta TYPE jsonb",
"ALTER TABLE card_object_data ALTER meta TYPE jsonb",
"ALTER TABLE card_templates ALTER meta TYPE jsonb",
"ALTER TABLE card_text_data ALTER meta TYPE jsonb",
"ALTER TABLE compo_entries ALTER meta TYPE jsonb",
"ALTER TABLE compo_entry_files ALTER meta TYPE jsonb",
"ALTER TABLE compo_entry_participations ALTER meta TYPE jsonb",
"ALTER TABLE compo_votes ALTER meta TYPE jsonb",
"ALTER TABLE compos ALTER meta TYPE jsonb",
"ALTER TABLE discount_instances ALTER meta TYPE jsonb",
"ALTER TABLE discounts ALTER meta TYPE jsonb",
"ALTER TABLE event_domains ALTER meta TYPE jsonb",
"ALTER TABLE event_log ALTER meta TYPE jsonb",
"ALTER TABLE event_log_types ALTER meta TYPE jsonb",
"ALTER TABLE event_organiser ALTER meta TYPE jsonb",
"ALTER TABLE event_private_properties ALTER meta TYPE jsonb",
"ALTER TABLE event_properties ALTER meta TYPE jsonb",
"ALTER TABLE event_users ALTER meta TYPE jsonb",
"ALTER TABLE events ALTER meta TYPE jsonb",
"ALTER TABLE feedback ALTER meta TYPE jsonb",
"ALTER TABLE food_wave_templates ALTER meta TYPE jsonb",
"ALTER TABLE food_waves ALTER meta TYPE jsonb",
"ALTER TABLE game_ids ALTER meta TYPE jsonb",
"ALTER TABLE group_memberships ALTER meta TYPE jsonb",
"ALTER TABLE groups ALTER meta TYPE jsonb",
"ALTER TABLE help_text_histories ALTER meta TYPE jsonb",
"ALTER TABLE help_texts ALTER meta TYPE jsonb",
"ALTER TABLE helps ALTER meta TYPE jsonb",
"ALTER TABLE inventory_events ALTER meta TYPE jsonb",
"ALTER TABLE lecture_groups ALTER meta TYPE jsonb",
"ALTER TABLE lectures ALTER meta TYPE jsonb",
"ALTER TABLE licensecodes ALTER meta TYPE jsonb",
"ALTER TABLE licensetargets ALTER meta TYPE jsonb",
"ALTER TABLE locations ALTER meta TYPE jsonb",
"ALTER TABLE map_queue_rules ALTER meta TYPE jsonb",
"ALTER TABLE maps ALTER meta TYPE jsonb",
"ALTER TABLE match_results ALTER meta TYPE jsonb",
"ALTER TABLE matches ALTER meta TYPE jsonb",
"ALTER TABLE menu_navigation ALTER meta TYPE jsonb",
"ALTER TABLE menuitem ALTER meta TYPE jsonb",
"ALTER TABLE network_associations ALTER meta TYPE jsonb",
"ALTER TABLE news ALTER meta TYPE jsonb",
"ALTER TABLE news_groups ALTER meta TYPE jsonb",
"ALTER TABLE org_role_requests ALTER meta TYPE jsonb",
"ALTER TABLE org_roles ALTER meta TYPE jsonb",
"ALTER TABLE place_slots ALTER meta TYPE jsonb",
"ALTER TABLE places ALTER meta TYPE jsonb",
"ALTER TABLE poll ALTER meta TYPE jsonb",
"ALTER TABLE poll_answer ALTER meta TYPE jsonb",
"ALTER TABLE poll_question ALTER meta TYPE jsonb",
"ALTER TABLE possible_answer ALTER meta TYPE jsonb",
"ALTER TABLE printed_cards ALTER meta TYPE jsonb",
"ALTER TABLE product_dependencies ALTER meta TYPE jsonb",
"ALTER TABLE product_limitations ALTER meta TYPE jsonb",
"ALTER TABLE product_option_groups ALTER meta TYPE jsonb",
"ALTER TABLE product_options ALTER meta TYPE jsonb",
"ALTER TABLE products ALTER meta TYPE jsonb",
"ALTER TABLE reader_events ALTER meta TYPE jsonb",
"ALTER TABLE readers ALTER meta TYPE jsonb",
"ALTER TABLE roles ALTER meta TYPE jsonb",
"ALTER TABLE sales_entity ALTER meta TYPE jsonb",
"ALTER TABLE salespoint ALTER meta TYPE jsonb",
"ALTER TABLE site_page_content ALTER meta TYPE jsonb",
"ALTER TABLE site_pages ALTER meta TYPE jsonb",
"ALTER TABLE tournament_games ALTER meta TYPE jsonb",
"ALTER TABLE tournament_participants ALTER meta TYPE jsonb",
"ALTER TABLE tournament_rules ALTER meta TYPE jsonb",
"ALTER TABLE tournament_team_members ALTER meta TYPE jsonb",
"ALTER TABLE tournaments ALTER meta TYPE jsonb",
"ALTER TABLE user_approvals ALTER meta TYPE jsonb",
"ALTER TABLE user_images ALTER meta TYPE jsonb",
"ALTER TABLE user_notes ALTER meta TYPE jsonb",
"ALTER TABLE users ALTER meta TYPE jsonb",
"ALTER TABLE vip_product_deliveries ALTER meta TYPE jsonb",
"ALTER TABLE vip_products ALTER meta TYPE jsonb",
"ALTER TABLE vips ALTER meta TYPE jsonb",
"ALTER TABLE user_allergies ALTER meta TYPE jsonb"
});
dbUpdates.add(new String[]{
"ALTER TABLE account_events ALTER delivered TYPE TIMESTAMPTZ",
"ALTER TABLE account_events ALTER event_time TYPE TIMESTAMPTZ",
"ALTER TABLE bills ALTER sent_time TYPE TIMESTAMPTZ",
"ALTER TABLE bills ALTER paid_date TYPE TIMESTAMPTZ",
"ALTER TABLE compo_entries ALTER entry_created TYPE TIMESTAMPTZ",
"ALTER TABLE compo_entry_files ALTER uploaded TYPE TIMESTAMPTZ",
"ALTER TABLE compo_entry_participations ALTER confirmed TYPE TIMESTAMPTZ",
"ALTER TABLE compo_votes ALTER vote_time TYPE TIMESTAMPTZ",
"ALTER TABLE compos ALTER compo_start TYPE TIMESTAMPTZ",
"ALTER TABLE compos ALTER submit_end TYPE TIMESTAMPTZ",
"ALTER TABLE compos ALTER submit_start TYPE TIMESTAMPTZ",
"ALTER TABLE compos ALTER vote_end TYPE TIMESTAMPTZ",
"ALTER TABLE compos ALTER vote_start TYPE TIMESTAMPTZ",
"ALTER TABLE compos ALTER compo_end TYPE TIMESTAMPTZ",
"ALTER TABLE discounts ALTER valid_from TYPE TIMESTAMPTZ",
"ALTER TABLE discounts ALTER valid_to TYPE TIMESTAMPTZ",
"ALTER TABLE event_log ALTER event_time TYPE TIMESTAMPTZ",
"ALTER TABLE event_private_properties ALTER date_value TYPE TIMESTAMPTZ",
"ALTER TABLE event_properties ALTER date_value TYPE TIMESTAMPTZ",
"ALTER TABLE event_users ALTER createtime TYPE TIMESTAMPTZ",
"ALTER TABLE events ALTER end_time TYPE TIMESTAMPTZ",
"ALTER TABLE events ALTER start_time TYPE TIMESTAMPTZ",
"ALTER TABLE events ALTER ticket_sales_begin TYPE TIMESTAMPTZ",
"ALTER TABLE feedback ALTER timestamp TYPE TIMESTAMPTZ",
"ALTER TABLE food_waves ALTER wave_time TYPE TIMESTAMPTZ",
"ALTER TABLE group_memberships ALTER invite_accepted TYPE TIMESTAMPTZ",
"ALTER TABLE group_memberships ALTER entered_event TYPE TIMESTAMPTZ",
"ALTER TABLE groups ALTER group_edited TYPE TIMESTAMPTZ",
"ALTER TABLE groups ALTER group_created TYPE TIMESTAMPTZ",
"ALTER TABLE news ALTER expire TYPE TIMESTAMPTZ",
"ALTER TABLE news ALTER publish TYPE TIMESTAMPTZ",
"ALTER TABLE old_actionlog_message_responses ALTER time TYPE TIMESTAMPTZ",
"ALTER TABLE old_actionlog_messages ALTER time TYPE TIMESTAMPTZ",
"ALTER TABLE places ALTER reserve_time TYPE TIMESTAMPTZ",
"ALTER TABLE poll ALTER closing_time TYPE TIMESTAMPTZ",
"ALTER TABLE poll ALTER opening_time TYPE TIMESTAMPTZ",
"ALTER TABLE printed_cards ALTER print_time TYPE TIMESTAMPTZ",
"ALTER TABLE reader_events ALTER event_time TYPE TIMESTAMPTZ",
"ALTER TABLE reader_events ALTER event_updated TYPE TIMESTAMPTZ",
"ALTER TABLE site_page_content ALTER expire TYPE TIMESTAMPTZ",
"ALTER TABLE site_page_content ALTER publish TYPE TIMESTAMPTZ",
"ALTER TABLE user_images ALTER uploaded TYPE TIMESTAMPTZ",
"ALTER TABLE users ALTER birthday TYPE TIMESTAMPTZ",
"ALTER TABLE users ALTER confirm_time TYPE TIMESTAMPTZ",
"ALTER TABLE users ALTER created TYPE TIMESTAMPTZ"
});
}
public BootstrapBean() {
......
......@@ -58,51 +58,12 @@
<version>1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.ancoron.postgresql</groupId>
<artifactId>org.ancoron.postgresql.jpa</artifactId>
<version>9.1.901.jdbc4.1-rc9</version>
<exclusions>
<exclusion>
<artifactId>javax.persistence</artifactId>
<groupId>org.eclipse.persistence</groupId>
</exclusion>
<exclusion>
<artifactId>org.eclipse.persistence.osgi</artifactId>
<groupId>org.eclipse.persistence</groupId>
</exclusion>
<exclusion>
<artifactId>org.eclipse.persistence.core</artifactId>
<groupId>org.eclipse.persistence</groupId>
</exclusion>
<exclusion>
<artifactId>org.postgresql</artifactId>
<groupId>org.ancoron.postgresql</groupId>
</exclusion>
<exclusion>
<artifactId>org.postgresql.net</artifactId>
<groupId>org.ancoron.postgresql</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.3-1102-jdbc41</version>
<version>42.2.2.jre7</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.ancoron.postgresql</groupId>
<artifactId>org.postgresql.net</artifactId>
<version>9.1.901.jdbc4.1-rc9</version>
<exclusions>
<exclusion>
<artifactId>org.postgresql</artifactId>
<groupId>org.ancoron.postgresql</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.core</artifactId>
<version>2.5.2-RC1</version>
......
/*
* Copyright Codecrew Ry
*
* All rights reserved.
*
* This license applies to any software containing a notice placed by the
* copyright holder. Such software is herein referred to as the Software.
* This license covers modification, distribution and use of the Software.
*
* Any distribution and use in source and binary forms, with or without
* modification is not permitted without explicit written permission from the
* copyright owner.
*
* A non-exclusive royalty-free right is granted to the copyright owner of the
* Software to use, modify and distribute all modifications to the Software in
* future versions of the Software.
*
*/
package fi.codecrew.moya.database.eclipselink;
import java.util.Hashtable;
import org.ancoron.postgresql.jpa.eclipselink.ExtendedPostgreSQLPlatform;
import org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Smarter defaults. Use TEXT for string columns and understand JSON fields.
* Also inherit ExtendedPostgreSQLPlatform which understand the Inet types.
*
* @author jkj
*
*/
public class MoyaPostgreSQLPlatform extends ExtendedPostgreSQLPlatform {
private static final long serialVersionUID = 6351395815598077327L;
private static final Logger log = LoggerFactory.getLogger(MoyaPostgreSQLPlatform.class);
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected Hashtable buildFieldTypes() {
log.info("Customizing SQL Platform field types for Moya");
Hashtable map = super.buildFieldTypes();
map.put(String.class, new FieldTypeDefinition("TEXT", false));
map.put(java.sql.Timestamp.class, new FieldTypeDefinition("TIMESTAMPTZ", false));
map.put(javax.json.JsonObject.class, new FieldTypeDefinition("JSON", false));
return map;
}
}
......@@ -29,8 +29,11 @@ import javax.persistence.Transient;
import fi.codecrew.moya.utilities.jpa.EntityEquals;
import fi.codecrew.moya.utilities.jpa.ModelInterface;
import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;
@MappedSuperclass
@OptimisticLocking(type= OptimisticLockingType.ALL_COLUMNS)
public class GenericEntity extends EntityEquals implements ModelInterface, EntityMeta {
private static final long serialVersionUID = -9041737052951021560L;
......
......@@ -8,8 +8,7 @@
<property name="eclipselink.cache.size.default" value="16384" />
<property name="eclipselink.logging.logger" value="ServerLogger" />
<property name="eclipselink.jdbc.uppercase-columns" value="false" />
<property name="eclipselink.target-database"
value="fi.codecrew.moya.database.eclipselink.MoyaPostgreSQLPlatform" />
<property name="eclipselink.target-database" value="PostgreSQL" />
<property name="eclipselink.create-ddl-jdbc-file-name" value="moyaCreateDDL.sql" />
<property name="eclipselink.drop-ddl-jdbc-file-name" value="moyaDropDDL.sql" />
<property name="eclipselink.target-server" value="Glassfish" />
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!