db.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. let init = function(db){
  2. // Create the tables we need to store galleries and files
  3. db.schema.createTableIfNotExists('albums', function (table) {
  4. table.increments()
  5. table.integer('userid')
  6. table.string('name')
  7. table.string('identifier')
  8. table.integer('enabled')
  9. table.integer('timestamp')
  10. }).then(() => {})
  11. db.schema.createTableIfNotExists('files', function (table) {
  12. table.increments()
  13. table.integer('userid')
  14. table.string('name')
  15. table.string('original')
  16. table.string('type')
  17. table.string('size')
  18. table.string('hash')
  19. table.string('ip')
  20. table.integer('albumid')
  21. table.integer('timestamp')
  22. }).then(() => {})
  23. db.schema.createTableIfNotExists('users', function (table) {
  24. table.increments()
  25. table.string('username')
  26. table.string('password')
  27. table.string('token')
  28. table.integer('enabled')
  29. table.integer('timestamp')
  30. }).then(() => {
  31. db.table('users').where({username: 'root'}).then((user) => {
  32. if(user.length > 0) return
  33. require('bcrypt').hash('root', 10, function(err, hash) {
  34. if(err) console.error('Error generating password hash for root')
  35. db.table('users').insert({
  36. username: 'root',
  37. password: hash,
  38. token: require('randomstring').generate(64),
  39. timestamp: Math.floor(Date.now() / 1000)
  40. }).then(() => {})
  41. })
  42. })
  43. })
  44. }
  45. module.exports = init