Advertisement
Guest User

Untitled

a guest
Oct 12th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. var csv = require('csv')
  2. var knex = require('knex')({
  3. client: 'mysql',
  4. connection: {
  5. host: '127.0.0.1',
  6. user: 'theo',
  7. password: null,
  8. database: 'co_base',
  9. charset: 'utf8'
  10. }
  11. });
  12.  
  13. function importCSV(csv_filepath, table_name, column_arr){
  14. knex.schema.createTableIfNotExists(table_name, function(table) {
  15. table.increments('id').primary().notNullable();
  16. for (column in column_arr){ //create table columns in db
  17. // console.log(column_arr[column].name);
  18. switch(column_arr[column].type) {
  19. case 'VARCHAR':
  20. table.string(column_arr[column].name, column_arr[column].size);
  21. break;
  22. case 'INT':
  23. table.integer(column_arr[column].name, column_arr[column].size);
  24. break;
  25. case 'DATE':
  26. table.date(column_arr[column].name, column_arr[column].size);
  27. break;
  28. case 'TIMESTAMP':
  29. table.timestamp(column_arr[column].name, column_arr[column].size);
  30. break;
  31. }
  32. }
  33. }).then (function () {
  34. //insert into db
  35. var fs = require('fs');
  36. var parse = require('csv-parse');
  37. var parser = parse({delimiter: ';'}, function(err, data){
  38. console.log(data);
  39. var counter = 0;
  40. for (row in data){
  41. console.log(row);
  42.  
  43. if(row == 0){
  44. counter++;
  45. continue;
  46. }
  47. var rowToInsert = {};
  48. for (column in data[row]){
  49. try {
  50. var key = column_arr[column].name;
  51. } catch (error) {
  52. counter++;
  53. continue;
  54. }
  55. console.log(key);
  56. var elem = data[row][column];
  57. if(column_arr[column].type === "INT"){
  58. elem = elem.replace(/,/g, '');
  59. elem = parseInt(elem);
  60. }
  61. rowToInsert[key] = elem;
  62. }
  63. // console.log(rowToInsert);
  64. try {
  65. knex(table_name).insert(rowToInsert).then(function() {
  66. console.log("a mers");
  67. counter++;
  68. console.log(counter);
  69. if (counter == data.length) {
  70. process.exit(0);
  71. }
  72. });
  73. } catch (error) {
  74. console.log(error);
  75. }
  76.  
  77. }
  78. })
  79. fs.createReadStream(csv_filepath).pipe(parser);
  80. }).catch(function(e) {
  81. console.log(e)
  82. });
  83. }
  84.  
  85. var column_arr = [
  86. {
  87. "name" : "Magazin",
  88. "type" : "VARCHAR",
  89. "size" : 255,
  90. },
  91. {
  92. "name" : "Cod Departament",
  93. "type" : "INT",
  94. "size" : null,
  95. },
  96. {
  97. "name" : "Departament",
  98. "type" : "VARCHAR",
  99. "size" : 255,
  100. },
  101. {
  102. "name" : "Cod Raion",
  103. "type" : "VARCHAR",
  104. "size" : 255,
  105. },
  106. {
  107. "name" : "Raion",
  108. "type" : "VARCHAR",
  109. "size" : null,
  110. },
  111. {
  112. "name" : "Cod familie",
  113. "type" : "INT",
  114. "size" : null,
  115. },
  116. {
  117. "name" : "Familie",
  118. "type" : "VARCHAR",
  119. "size" : null,
  120. },
  121. {
  122. "name" : "Cod subfamilie",
  123. "type" : "INT",
  124. "size" : null,
  125. },
  126. {
  127. "name" : "Subfamilie",
  128. "type" : "VARCHAR",
  129. "size" : null,
  130. },
  131. {
  132. "name" : "Clasa de rotatie",
  133. "type" : "VARCHAR",
  134. "size" : null,
  135. },
  136. {
  137. "name" : "Cod Articol",
  138. "type" : "INT",
  139. "size" : null,
  140. },
  141. {
  142. "name" : "Denumire",
  143. "type" : "VARCHAR",
  144. "size" : null,
  145. }
  146. ]
  147. importCSV('testcsv.csv', "comandabile", column_arr);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement