Website Customizations Not Reflecting in Another Local Environment Using Fixtures"

Hi All / @here ,

I have customized the website using Website Settings, Blog, and Web Page in my local Frappe Helpdesk and ERPNext instance. Now, I am trying to reflect these changes in another local development environment.

I attempted to achieve this using fixtures by following these steps:

  1. Edited hooks.py and added:
    fixtures = ["Client Script","Ticket Category List","Website Settings","Custom Field","Workspace"]
    
  2. Ran:
    bench export-fixtures  
    git add apps/your_app/your_app/fixtures/  
    git commit -m "Add fixtures for Custom Field and Client Script"  
    git push  
    
  3. On the other environment, ran:
    git pull  
    bench --site sitename migrate  
    

However, the website customizations are not reflecting in the other environment. Did I miss something in the fixtures? Or is there another method I should follow?

Fixture Screenshot

In the screenshot, I have mentioned “Ticket Category List” in the fixtures. It is actually a Tree Doctype, and I need its values to reflect in another environment as well. I find using fixtures easier compared to the Data Import/Export tool with CSV, so I tried this method. Please let me know if I’m doing it correctly or if there’s a better approach.

If you export the Workspace using the export-fixtures command, it might not work properly. I think you need to create a custom workspace and link it to the module or app. This way, it will be included in your custom app. When you install the application on any site, the workspace will work correctly.

In Website Settings, if you have created a custom theme or used images, you also need to export the submasters of Website Settings. However, for images, you must set them up first, so it’s not recommended to export the Website Settings. You can easily set this up in 2–3 minutes.

Reference of export-fixtures: How to Export Custom created solution to import on another system - #2 by NCP

@NCP, please correct me if I’m wrong.

As per your suggestion, I’ve removed the Workspace from the Fixtures list. I forgot to mention earlier that I’m working on two modules: one is custom module and Frappe Helpdesk, both functioning separately. For accessing both in one single place , I’ve customized the Website Settings.

You mentioned “custom app,” but I didn’t fully understand that.

In this case, if I follow the steps below, will all my Website Settings be reflected in the other local development environment?

fixtures = [
    {
        "doctype": "Website Settings",
    },
    {
        "doctype": "Website Theme",  # Custom theme if applicable
    },
    {
        "doctype": "File",  # For managing image files
    },
    {
        "doctype": "Custom Field",
    },
    {
        "doctype": "Property Setter",
    },
    {
        "doctype": "Server Script",
    },
    {
        "doctype": "Client Script",
    },
    {
        "doctype": "Workflow Action Master",
    },
    {
        "doctype": "Workflow State",
    },
    {
        "doctype": "Workflow",
    },
    {
        "doctype": "Assignment Rule",
    },
]

Try this

fixtures = [
	{"dt": "Workspace", "filters": [ # for exporting workspace
		[
			"name", "in", [ 
				"Accounting",
				"HR",
				"ERPNext Settings",
				"Home",
			]
		]
	]},
	"Workflow", #for workflow
	"Workflow State",
	"Workflow Action Master",
	"Website Settings", # for website setting
	"System Settings",
	"Navbar Settings",
]