OSDN Git Service

name_hashは被る可能性があるので、primaryではなくindexを指定するようにした master
authorgdkhd812 <jbh03215@hotmail.co.jp>
Sat, 31 May 2014 09:55:29 +0000 (18:55 +0900)
committergdkhd812 <jbh03215@hotmail.co.jp>
Sat, 31 May 2014 09:55:29 +0000 (18:55 +0900)
configure.js
init.js
init.sql

index 9a14799..120ee7e 100644 (file)
@@ -61,7 +61,6 @@
                                name : "名前(ハッシュ)",\r
                                type : "unsignednumber",\r
                                length : 4,\r
-                               primary : true,\r
                                visible : false,\r
                                visible_edit : false,\r
                                visible_registor : false,\r
diff --git a/init.js b/init.js
index cbd80a6..392e4bc 100644 (file)
--- a/init.js
+++ b/init.js
@@ -40,15 +40,17 @@ module.exports = function(callback){
        }else{
                throw "lastmodifiedが存在しません";
        }
+
+       var Sequelize = require("sequelize");
+       var pool = new Sequelize(config.db_name, config.db_user, config.db_password,{
+                               host:config.db_host,
+                               port:config.db_port
+                       });
+
        var fs = require("fs");
+
        async.waterfall([
                function(next){
-                       var Sequelize = require("sequelize");
-                       var pool = new Sequelize(config.db_name, config.db_user, config.db_password,{
-                                               host:config.db_host,
-                                               port:config.db_port
-                                       });
-
                        var query = GetCreateQuery(Sequelize,config.alias,"profilelist"); 
                        var profilelist = pool.define("profilelist",query);
                        module.exports.GetProfileColletion = profilelist;
@@ -62,7 +64,6 @@ module.exports = function(callback){
                                type:{
                                        type : "text",
                                        length : 1,
-                                       primary : true,
                                },
                        };
                        var query = GetCreateQuery(Sequelize,def,"ipbanlist"); 
@@ -95,25 +96,33 @@ module.exports = function(callback){
                },
                function(exists,next){
                        if(exists)
-                               next(null);
+                               next(true);
                        else
                                fs.open("inited","a",function(err,fd){
                                        fs.closeSync(fd);
-
-                                       module.exports.GetProfileColletion.drop();
-                                       module.exports.GetProfileColletion.sync();
-
-                                       module.exports.GetIpBanColletion.drop();
-                                       module.exports.GetIpBanColletion.sync();
-
-                                       module.exports.GetRoomInfomation.drop();
-                                       module.exports.GetRoomInfomation.sync();
-
                                        next(null);
                                });
+               },
+               function(next){
+                       module.exports.GetProfileColletion.sync({force:true}).done(next);
+               },
+               function(result,next){
+                       pool.getQueryInterface().addIndex(
+                               module.exports.GetProfileColletion.tableName,
+                               ["name_hash"]
+                       ).done(next);
+               },
+               function(result,next){
+                       module.exports.GetIpBanColletion.sync({force:true}).done(next);
+               },
+               function(result,next){
+                       module.exports.GetRoomInfomation.sync({force:true}).done(next);
                }
        ],function(err){
-               callback(err);
+               if(err)
+                       callback(null);
+               else
+                       callback(err);
        });
 }
 
@@ -156,7 +165,7 @@ function GetCreateQuery(Sequelize,def,tablename)
                }
                if(typeof(def[key].isnotempty) != "undefined" && def[key].isnotempty)
                        option["allowNull"] = true;
-               else if(typeof(def[key].primary) != "undefined" && def[key].primary)
+               if(typeof(def[key].primary) != "undefined" && def[key].primary)
                        option["primaryKey"] = true;
                result[key] = option;
        }
index e41a128..5d25fd2 100644 (file)
--- a/init.sql
+++ b/init.sql
@@ -3,6 +3,7 @@ grant select,
        delete,
        create,
        drop,
+       index,
        update on *.* to user identified by 'user';
 flush privileges;
 CREATE DATABASE IF NOT EXISTS webchat DEFAULT CHARSET=utf8;