]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Server: Add postgresql indexes
authorChocobozzz <florian.bigard@gmail.com>
Thu, 29 Dec 2016 08:33:28 +0000 (09:33 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Thu, 29 Dec 2016 09:04:39 +0000 (10:04 +0100)
server/models/author.js
server/models/oauth-client.js
server/models/oauth-token.js
server/models/pod.js
server/models/requestToPod.js
server/models/tag.js
server/models/user.js
server/models/video.js
server/models/videoTag.js

index e0ac868eab7384536670305cffa9258e73735c43..8f5b598c8e689b6d471f022076a1dc4b36ee4437 100644 (file)
@@ -17,6 +17,14 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      indexes: [
+        {
+          fields: [ 'name' ]
+        },
+        {
+          fields: [ 'podId' ]
+        }
+      ],
       classMethods: {
         associate
       }
index b56838d4c9918126a35b82c2f38d52caf5c77eb9..758c4cf2f63838989f16ca7c7cdf7d57d11e1adc 100644 (file)
@@ -19,9 +19,17 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      indexes: [
+        {
+          fields: [ 'clientId' ],
+          unique: true
+        },
+        {
+          fields: [ 'clientId', 'clientSecret' ],
+          unique: true
+        }
+      ],
       classMethods: {
-        associate,
-
         getByIdAndSecret,
         list,
         loadFirstClient
@@ -34,16 +42,6 @@ module.exports = function (sequelize, DataTypes) {
 
 // ---------------------------------------------------------------------------
 
-function associate (models) {
-  this.hasMany(models.OAuthToken, {
-    foreignKey: {
-      name: 'oAuthClientId',
-      allowNull: false
-    },
-    onDelete: 'cascade'
-  })
-}
-
 function list (callback) {
   return this.findAll().asCallback(callback)
 }
index f8de4e9161613b5f672b07c871521e0f437f46dc..68e7c9ff724cdb1e642960f9f256cf94d9534e04 100644 (file)
@@ -25,6 +25,22 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      indexes: [
+        {
+          fields: [ 'refreshToken' ],
+          unique: true
+        },
+        {
+          fields: [ 'accessToken' ],
+          unique: true
+        },
+        {
+          fields: [ 'userId' ]
+        },
+        {
+          fields: [ 'oAuthClientId' ]
+        }
+      ],
       classMethods: {
         associate,
 
@@ -49,6 +65,14 @@ function associate (models) {
     },
     onDelete: 'cascade'
   })
+
+  this.belongsTo(models.OAuthClient, {
+    foreignKey: {
+      name: 'oAuthClientId',
+      allowNull: false
+    },
+    onDelete: 'cascade'
+  })
 }
 
 function getByRefreshTokenAndPopulateClient (refreshToken) {
index 84f78f2007ac00f38edea0bd68c413f67e2db0de..83ecd732e0a1502873e9a8cb62020eaee48337d5 100644 (file)
@@ -35,6 +35,14 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      indexes: [
+        {
+          fields: [ 'host' ]
+        },
+        {
+          fields: [ 'score' ]
+        }
+      ],
       classMethods: {
         associate,
 
index 378c2bdcf6be85849e2eb4bf044147b767ec5bcf..f42a534586471ccdfda596d2dc0004c123bd2fe1 100644 (file)
@@ -4,6 +4,18 @@
 
 module.exports = function (sequelize, DataTypes) {
   const RequestToPod = sequelize.define('RequestToPod', {}, {
+    indexes: [
+      {
+        fields: [ 'requestId' ]
+      },
+      {
+        fields: [ 'podId' ]
+      },
+      {
+        fields: [ 'requestId', 'podId' ],
+        unique: true
+      }
+    ],
     classMethods: {
       removePodOf
     }
index d6c2d3bb12ff2c75a7a489951d2d97411ecb0af5..27eecdc84d20be0ef6310bd566973b2d553fa310 100644 (file)
@@ -11,6 +11,13 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      timestamps: false,
+      indexes: [
+        {
+          fields: [ 'name' ],
+          unique: true
+        }
+      ],
       classMethods: {
         associate
       }
index 944986a44dfb9ffbe7ec0c4eb83d4730b7921b51..631cd96c98cbe014aa65e6ef1ac962e39fc3e12f 100644 (file)
@@ -38,6 +38,11 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      indexes: [
+        {
+          fields: [ 'username' ]
+        }
+      ],
       classMethods: {
         associate,
 
index 3ebc48ad4d66ec5bc4faa8a370c5178e1abedf8c..d1595ce515ddad8fe2c7c8e0ab5d79ba7d91b4a6 100644 (file)
@@ -82,6 +82,26 @@ module.exports = function (sequelize, DataTypes) {
       }
     },
     {
+      indexes: [
+        {
+          fields: [ 'authorId' ]
+        },
+        {
+          fields: [ 'remoteId' ]
+        },
+        {
+          fields: [ 'name' ]
+        },
+        {
+          fields: [ 'createdAt' ]
+        },
+        {
+          fields: [ 'duration' ]
+        },
+        {
+          fields: [ 'infoHash' ]
+        }
+      ],
       classMethods: {
         associate,
 
index 0f2b20838f40b91d6c7aab1e211ac62f58740d0c..cd9277a6e34a36f422f703e911e4279d8d98db30 100644 (file)
@@ -3,7 +3,16 @@
 // ---------------------------------------------------------------------------
 
 module.exports = function (sequelize, DataTypes) {
-  const VideoTag = sequelize.define('VideoTag', {}, {})
+  const VideoTag = sequelize.define('VideoTag', {}, {
+    indexes: [
+      {
+        fields: [ 'videoId' ]
+      },
+      {
+        fields: [ 'tagId' ]
+      }
+    ]
+  })
 
   return VideoTag
 }