sql >> Base de Datos >  >> RDS >> Mysql

Reproducir archivo BLOB de imagen de marco para objeto de prueba Yaml

He experimentado el mismo tipo de problema hace un tiempo en un proyecto. Sin embargo, como no pude encontrar una manera de resolver esto con los accesorios (ya que la base de datos almacena el objeto blob como una cadena como explicó Pere anteriormente), creé una solución alternativa para al menos resolver este problema en un escenario de prueba. Creé el siguiente archivo /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());
            }
        }
    }
}

Lo primero que hago es llenar la base de datos con datos iniciales si no hay ningún 'Artículo' ya almacenado en la base de datos.
¡Lo segundo es iterar sobre todos los 'Artículos' que se reproducen! simplemente se almacenan en la base de datos, que se leen del archivo "my_fixtures.yml". Aquí, para cada elemento, el campo de cadena se actualizará como se muestra en el ejemplo anterior.

Sé que esta no es exactamente la respuesta a la pregunta en el OP, pero da una buena idea para solucionar este problema.

EDITAR:En el ejemplo anterior, asumo que las imágenes se cargan manualmente en su carpeta de archivos adjuntos como se indica en su application.conf , y que el nombre de cada imagen es como:"item_" con una extensión ".png"