aboutsummaryrefslogtreecommitdiff
path: root/juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java')
-rw-r--r--juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java178
1 files changed, 171 insertions, 7 deletions
diff --git a/juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java b/juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java
index c728b527..03009565 100644
--- a/juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java
+++ b/juick-server-jdbc/src/main/java/com/juick/configuration/DataConfiguration.java
@@ -37,16 +37,16 @@ import java.util.List;
*/
@Configuration
@EnableTransactionManagement
-@PropertySource(value = {"classpath:juick.conf"})
+@PropertySource(value = {"classpath:juick.conf"}, ignoreResourceNotFound = true)
@ComponentScan(basePackages = {"com.juick.service"})
public class DataConfiguration implements TransactionManagementConfigurer {
- @Value("${datasource_driver:com.mysql.jdbc.Driver}")
+ @Value("${datasource_driver:org.h2.Driver}")
private String datasourceDriver;
- @Value("${datasource_url:}")
+ @Value("${datasource_url:jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;mode=MYSQL}")
private String datasourceUrl;
- @Value("${datasource_user:}")
+ @Value("${datasource_user:juick}")
private String datasourceUser;
- @Value("${datasource_password:}")
+ @Value("${datasource_password:secret}")
private String datasourcePassword;
// NOTE: The close() method will be called automatically with default @Bean settings
@@ -76,9 +76,173 @@ public class DataConfiguration implements TransactionManagementConfigurer {
}
@Bean
- @DependsOn("dataSource")
public JdbcTemplate jdbcTemplate() {
- return new JdbcTemplate(dataSource());
+ JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource());
+ if (datasourceDriver.equals("org.h2.Driver")) {
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS bl_users (user_id int(10) unsigned NOT NULL, " +
+ "bl_user_id int(10) unsigned NOT NULL, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP )");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS bl_tags (user_id int(10) unsigned NOT NULL, " +
+ "tag_id int(10) unsigned NOT NULL)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS wl_users (user_id int(10) unsigned NOT NULL, " +
+ "wl_user_id int(10) unsigned NOT NULL, ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP )");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS messages (" +
+ "message_id int(10) unsigned NOT NULL AUTO_INCREMENT," +
+ "user_id int(10) unsigned NOT NULL," +
+ "place_id int(10) unsigned DEFAULT NULL," +
+ "lat decimal(10,7) DEFAULT NULL," +
+ "lon decimal(10,7) DEFAULT NULL," +
+ "ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP," +
+ "replies smallint(5) unsigned NOT NULL DEFAULT 0," +
+ "maxreplyid smallint(5) unsigned NOT NULL DEFAULT 0," +
+ "privacy tinyint(4) NOT NULL DEFAULT '1'," +
+ "attach nchar(3) check (attach in ('jpg', 'mp4', 'png'))," +
+ "readonly tinyint(1) NOT NULL DEFAULT 0," +
+ "likes smallint(6) NOT NULL DEFAULT 0," +
+ "`popular` tinyint(4) NOT NULL DEFAULT '0'," +
+ "hidden tinyint(3) unsigned NOT NULL DEFAULT 0," +
+ "updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS messages_tags (" +
+ "message_id int(10) unsigned NOT NULL," +
+ "tag_id int(10) unsigned NOT NULL" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS users (" +
+ "id int(10) unsigned NOT NULL AUTO_INCREMENT," +
+ "nick char(64) NOT NULL," +
+ "`lang` enum('en','ru','fr','fa','__') NOT NULL DEFAULT '__'," +
+ "passw char(32) NOT NULL," +
+ "banned tinyint(3) unsigned NOT NULL DEFAULT 0, " +
+ "PRIMARY KEY(id), UNIQUE KEY(nick))");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS useroptions (" +
+ "user_id int(10) unsigned NOT NULL," +
+ "jnotify tinyint(1) NOT NULL DEFAULT 1," +
+ "`repliesview` tinyint(1) NOT NULL DEFAULT '0'," +
+ "subscr_active tinyint(1) NOT NULL DEFAULT 1)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS subscr_users (" +
+ "user_id int(10) unsigned NOT NULL," +
+ "suser_id int(10) unsigned NOT NULL," +
+ "jid char(64) DEFAULT NULL," +
+ "active tinyint(1) NOT NULL DEFAULT 1," +
+ "ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, " +
+ "PRIMARY KEY (suser_id, user_id))");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS subscr_messages (" +
+ "message_id int(10) unsigned NOT NULL," +
+ "suser_id int(10) unsigned NOT NULL, PRIMARY KEY (suser_id, message_id))");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS subscr_tags (" +
+ "tag_id int(10) unsigned NOT NULL," +
+ "suser_id int(10) unsigned NOT NULL, PRIMARY KEY (suser_id, tag_id))");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS messages_txt (" +
+ "message_id int(10) unsigned NOT NULL," +
+ "tags varchar(255)," +
+ "repliesby varchar(96)," +
+ "txt TEXT)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS tags(" +
+ "tag_id int(10) unsigned NOT NULL AUTO_INCREMENT," +
+ "synonym_id int(10) unsigned DEFAULT NULL," +
+ "name char(48) NOT NULL," +
+ "top tinyint(1) unsigned NOT NULL DEFAULT 0," +
+ "stat_messages int(10) unsigned NOT NULL DEFAULT 0," +
+ "stat_users smallint(5) unsigned NOT NULL DEFAULT 0)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS jids(" +
+ "user_id int(10) unsigned NOT NULL AUTO_INCREMENT," +
+ "jid char(64) NOT NULL," +
+ "active tinyint(1) unsigned NOT NULL DEFAULT '1'," +
+ "loginhash char(36) unsigned DEFAULT NULL," +
+ "ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS replies (" +
+ "message_id int(10) unsigned NOT NULL," +
+ "reply_id smallint(5) unsigned NOT NULL," +
+ "user_id int(10) unsigned NOT NULL," +
+ "replyto smallint(5) unsigned NOT NULL DEFAULT 0," +
+ "ts timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP," +
+ "attach nchar(3) check (attach in ('jpg', 'mp4', 'png'))," +
+ "txt text)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS twitter(" +
+ "user_id int(10) unsigned NOT NULL," +
+ "access_token char(64) NOT NULL," +
+ "access_token_secret char(64) NOT NULL," +
+ "crosspost tinyint(1) unsigned NOT NULL DEFAULT '1'," +
+ "uname char(64) NOT NULL," +
+ "ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS facebook(" +
+ "user_id int(10) unsigned NOT NULL," +
+ "fb_id int(20) unsigned NOT NULL," +
+ "access_token char(255) NOT NULL," +
+ "loginhash char(36) NOT NULL," +
+ "crosspost tinyint(1) unsigned NOT NULL DEFAULT '1'," +
+ "fb_name char(64) NOT NULL," +
+ "fb_link char(64) NOT NULL," +
+ "ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS vk(" +
+ "user_id int(10) unsigned NOT NULL," +
+ "vk_id int(20) unsigned NOT NULL," +
+ "access_token char(128) NOT NULL," +
+ "loginhash char(36) NOT NULL," +
+ "crosspost tinyint(1) unsigned NOT NULL DEFAULT '1'," +
+ "vk_name char(64) NOT NULL," +
+ "vk_link char(64) NOT NULL," +
+ "ts TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP)");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS emails (" +
+ " user_id int(10) unsigned NOT NULL," +
+ " email char(64) NOT NULL," +
+ " subscr_hour tinyint(4) DEFAULT NULL," +
+ " PRIMARY KEY (email)" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS favorites (" +
+ " user_id int(10) unsigned NOT NULL," +
+ " message_id int(10) unsigned NOT NULL," +
+ " ts datetime NOT NULL" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS logins (" +
+ " user_id int(10) unsigned NOT NULL," +
+ " hash char(16) NOT NULL," +
+ " PRIMARY KEY (user_id)" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `telegram` (" +
+ " `user_id` int(10) unsigned DEFAULT NULL," +
+ " `tg_id` bigint(20) NOT NULL," +
+ " `tg_name` char(64) NOT NULL," +
+ " `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP," +
+ " `loginhash` char(36) DEFAULT NULL" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `pm` (" +
+ " `user_id` int(10) unsigned NOT NULL," +
+ " `user_id_to` int(10) unsigned NOT NULL," +
+ " `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP," +
+ " `txt` text NOT NULL" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `pm_streams` (" +
+ " `user_id` int(10) unsigned NOT NULL," +
+ " `user_id_to` int(10) unsigned NOT NULL," +
+ " `lastmessage` datetime NOT NULL," +
+ " `lastview` datetime DEFAULT NULL," +
+ " `unread` smallint(5) unsigned NOT NULL DEFAULT '0'" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `android` (" +
+ " `user_id` int(10) unsigned NOT NULL," +
+ " `regid` char(255) NOT NULL," +
+ " `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `ios` (" +
+ " `user_id` int(10) unsigned NOT NULL," +
+ " `token` char(64) NOT NULL," +
+ " `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `winphone` (" +
+ " `user_id` int(10) unsigned NOT NULL," +
+ " `url` char(255) NOT NULL," +
+ " `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `tags_ignore` (" +
+ " `tag_id` int(10) unsigned NOT NULL" +
+ ")");
+ jdbcTemplate.execute("CREATE TABLE IF NOT EXISTS `users_subscr` (" +
+ " `user_id` int(10) unsigned NOT NULL," +
+ " `cnt` smallint(5) unsigned NOT NULL DEFAULT '0'," +
+ " PRIMARY KEY (`user_id`)" +
+ ")");
+ }
+ return jdbcTemplate;
}
@Bean