db.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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('timestamp')
  29. }).then(() => {
  30. db.table('users').where({username: 'root'}).then((user) => {
  31. if(user.length > 0) return
  32. require('bcrypt').hash('root', 10, function(err, hash) {
  33. if(err) console.error('Error generating password hash for root')
  34. db.table('users').insert({
  35. username: 'root',
  36. password: hash,
  37. token: require('randomstring').generate(64),
  38. timestamp: Math.floor(Date.now() / 1000)
  39. }).then(() => {})
  40. })
  41. })
  42. })
  43. }
  44. module.exports = init