db.js 1.4 KB

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