db.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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.integer('enabled')
  8. table.integer('timestamp')
  9. }).then(() => {})
  10. db.schema.createTableIfNotExists('files', function (table) {
  11. table.increments()
  12. table.integer('userid')
  13. table.string('name')
  14. table.string('original')
  15. table.string('type')
  16. table.string('size')
  17. table.string('hash')
  18. table.string('ip')
  19. table.integer('albumid')
  20. table.integer('timestamp')
  21. }).then(() => {})
  22. db.schema.createTableIfNotExists('users', function (table) {
  23. table.increments()
  24. table.string('username')
  25. table.string('password')
  26. table.string('token')
  27. table.integer('timestamp')
  28. }).then(() => {
  29. db.table('users').where({username: 'root'}).then((user) => {
  30. if(user.length > 0) return
  31. require('bcrypt').hash('root', 10, function(err, hash) {
  32. if(err) console.error('Error generating password hash for root')
  33. db.table('users').insert({
  34. username: 'root',
  35. password: hash,
  36. token: require('randomstring').generate(64),
  37. timestamp: Math.floor(Date.now() / 1000)
  38. }).then(() => {})
  39. })
  40. })
  41. })
  42. }
  43. module.exports = init