1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
-
- class DatabaseSeeder extends Seeder {
-
- /**
- * Run the database seeds.
- *
- * @return void
- */
- public function run()
- {
- Eloquent::unguard();
-
- // IMPORTANT: Do not change order without understanding DB structure and each class first
- $this->call('UserTableSSNDecrypter'); // Decrypt employees' SSNs
- $this->call('UserTableSeeder'); // Update existing employees and add new employees
- $this->call('CourseTableSeeder'); // Add/update courses
- $this->call('UserTableSSNEncrypter'); // Encrypt employees' SSNs
- $this->call('StudentTableSeeder'); // Add/update students
- $this->call('CourseStudentTableSeeder'); // Add/update course-student enrollment (matrícula)
-
- // Step 2 :New seeders to add programs to programs_user table
- // $this->call('ProgramUserTableSeeder'); // Adds new lines to programs_users table using programs_users.csv file (Refer to OLAS guide for usage)
- }
-
- /**
- * Seeds a table by reading from a csv file
- *
- * Example: $this->insertFromCSV('courses', 'courses.csv');
- *
- * @param string $table Name of the table to be seeded
- * @param string $filename Name and extension of the file
- *
- * @var resource $file Pointer to CSV file to get imported
- * @var array $columns Array with column names for the table
- * @var int $rowIndex Index of row number
- * @var array $dbArray Array to be inserted into the database
- * @var int $columnIndex Index of column number
- *
- * @return void
- */
- public function insertFromCSV($table, $filename)
- {
- // Disable foreign key checks before truncating
- DB::statement('SET FOREIGN_KEY_CHECKS=0;');
-
- // Truncate table
- DB::table($table)->truncate();
-
- // Enable foreign key checks
- DB::statement('SET FOREIGN_KEY_CHECKS=1;');
-
- // Get columns
- $file = fopen('app/database/csv/'.$filename, 'r');
- $columns = fgetcsv($file, 5000, ",");
-
- /** Initialize row index to 0 */
- $rowIndex = 0;
-
- /** Initialize empty array */
- $dbArray=array();
-
- /** Read each row */
- while($data = fgetcsv($file, 5000, ","))
- {
- /** Initialize column index */
- $columnIndex = 0;
-
- /** For each column within a row, assign column name and value */
- foreach($data as $value)
- {
- $dbArray[$rowIndex][$columns[$columnIndex]] = $value;
- $columnIndex++;
- }
- $rowIndex++;
- }
-
- DB::table($table)->insert($dbArray);
- }
- }
|