Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Play Framework Image BLOB File dla obiektu testowego Yaml

Jakiś czas temu doświadczyłem tego samego problemu przy projekcie. Ponieważ jednak nie mogłem znaleźć sposobu, aby rozwiązać ten problem za pomocą urządzeń (ponieważ baza danych przechowuje obiekt blob jako ciąg znaków, jak wyjaśnił powyżej Pere), stworzyłem obejście, aby przynajmniej rozwiązać ten problem w scenariuszu przypadku testowego. Utworzyłem następujący plik /app/job/Bootstrap.java:

import play.test.*;
import play.jobs.*;
import play.db.DB;
import models.*;

import java.util.List;

@OnApplicationStart
public class Bootstrap extends Job {
     public void doJob() {
        // Load default data if the database is empty
        if(Item.count() == 0) {
            Fixtures.loadModels("my_fixtures.yml");
            List<Item> allItems = Item.findAll();
            for (Item a: allItems){
                DB.execute("UPDATE `Item` SET image='item_" + a.name.toLowerCase() + ".png|image/png' WHERE id=" + a.getId());
            }
        }
    }
}

Pierwszą rzeczą, którą robię, jest wypełnienie bazy danych danymi początkowymi, jeśli w bazie danych nie ma już żadnego „Przedmiotu”.
Drugą rzeczą jest iteracja po wszystkich „Przedmiotach”, które są odtwarzane! po prostu przechowywane w bazie danych, które są odczytywane z pliku "my_fixtures.yml". Tutaj dla każdego elementu pole tekstowe zostanie zaktualizowane, jak pokazano w powyższym przykładzie.

Wiem, że nie jest to do końca odpowiedź na pytanie w PO, ale daje to pewien pomysł na obejście tego problemu.

EDYTUJ:W powyższym przykładzie zakładam, że zdjęcia są przesyłane ręcznie do folderu załączników, jak podano w pliku application.conf , a nazwa każdego obrazu to:„item_” z rozszerzeniem „.png”



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zwrócić 0 z bazy danych MySQL, gdy termin w klauzuli Where nie znajduje się w bazie danych?

  2. Jak wygenerować unikalny, losowy ciąg dla jednej z moich kolumn tabeli MySql?

  3. Wyodrębnianie z dużego pliku xml kończy się niepowodzeniem ze względu na zbyt długi literał ciągu znaków

  4. Dlaczego migracja Railsów Active Record wygenerowała COLLATE utf8_bin na kolumnach varchar mysql

  5. Hibernate — nie udało się leniwie zainicjować kolekcji ról:beans.Language.patients, nie można zainicjować serwera proxy — brak sesji