djongo作为第二个数据库引擎

时间:2020-07-29 15:54:39

标签: django mongodb pytest-django djongo

我想将mongodb添加为我的django项目中的第二个数据库。我使用djongo lib。

当我使用pytest运行测试时,在数据库创建期间,首先要对postgresql进行迁移,然后所有迁移都希望应用于mongo(但我由DATABASE_ROUTERS拒绝)。

如何拒绝将迁移应用于mongodb但允许postgres?

Creating test database for alias 'mongo' ('test_my_project')...
backend          | 
test setup failed
self = <djongo.cursor.Cursor object at 0x7faf305a0c10>
sql = 'INSERT INTO "django_migrations" ("app", "name", "applied") VALUES (%s, %s, %s)'
params = ['contenttypes', '0001_initial', datetime.datetime(2020, 7, 29, 15, 14, 35, 55164)]

pytest输出:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableColumn.CellEditEvent;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class Launcher extends Application
{

    @Override
    public void start(Stage stage) throws Exception
    {
        AnchorPane root = new AnchorPane();

        TableView<Apprenant> table = new TableView<>();
        table.setPrefWidth(800);
        table.setEditable(true);
        
        TableColumn<Apprenant, String> nom = new TableColumn<>("Noms");
        nom.setPrefWidth(100);
        
        TableColumn<Apprenant, String> prenom = new TableColumn<>("Prenoms");
        prenom.setPrefWidth(100);

        nom.setCellValueFactory(var -> var.getValue().nomProperty());
        prenom.setCellValueFactory(var -> var.getValue().prenomProperty());
        
        nom.setCellFactory(TextFieldTableCell.forTableColumn());
        nom.setOnEditCommit((CellEditEvent<Apprenant, String> evt)->{
            
            Apprenant app = table.getSelectionModel().getSelectedItem();
            app.setNom(check(evt.getNewValue(),app.nomProperty().get()));
    
            /*THE ONLY WAY TO DISPLAY THE UPDATED VALUE*/
            //nom.setVisible(false); 
            //nom.setVisible(true);
        });

        table.getColumns().add(nom);
        table.getColumns().add(prenom);
        table.getItems().add(new Apprenant("monNom","monPrenom"));

        root.getChildren().add(table);
        
        Scene scene = new Scene(root,1200,800);
        stage.setScene(scene);
        stage.show();
    }
    
    private static String check(String valeur,String prev)
    {
        if(valeur.isEmpty())
        {   
            return prev;
        }
        else
        {
            return valeur;
        }
    }
    
    public static void main(String[] args)
    {
        launch(args);
    }
}

0 个答案:

没有答案